Binder: enable/fix some warnings
Bug: 341997808
Test: mma
Change-Id: Ibd44eda768a714e85399a15f3c8e534d715f87ce
Merged-In: Ibd44eda768a714e85399a15f3c8e534d715f87ce
diff --git a/libs/binder/ndk/include_ndk/android/persistable_bundle.h b/libs/binder/ndk/include_ndk/android/persistable_bundle.h
index 42ae15a..5e0d4da 100644
--- a/libs/binder/ndk/include_ndk/android/persistable_bundle.h
+++ b/libs/binder/ndk/include_ndk/android/persistable_bundle.h
@@ -29,6 +29,11 @@
#include <sys/cdefs.h>
#include <sys/types.h>
+#ifndef __clang__
+#define _Nullable
+#define _Nonnull
+#endif
+
__BEGIN_DECLS
/*
diff --git a/libs/binder/ndk/service_manager.cpp b/libs/binder/ndk/service_manager.cpp
index 5529455..259cced 100644
--- a/libs/binder/ndk/service_manager.cpp
+++ b/libs/binder/ndk/service_manager.cpp
@@ -18,6 +18,7 @@
#include <binder/IServiceManager.h>
#include <binder/LazyServiceRegistrar.h>
+#include "../Utils.h"
#include "ibinder_internal.h"
#include "status_internal.h"
@@ -71,7 +72,9 @@
}
sp<IServiceManager> sm = defaultServiceManager();
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
sp<IBinder> binder = sm->getService(String16(instance));
+ LIBBINDER_IGNORE_END()
sp<AIBinder> ret = ABpBinder::lookupOrCreateFromBinder(binder);
AIBinder_incStrong(ret.get());
diff --git a/libs/binder/ndk/tests/Android.bp b/libs/binder/ndk/tests/Android.bp
index 8fb755c..c61a164 100644
--- a/libs/binder/ndk/tests/Android.bp
+++ b/libs/binder/ndk/tests/Android.bp
@@ -34,6 +34,11 @@
cflags: [
"-O0",
"-g",
+ "-Wall",
+ "-Wextra",
+ "-Wextra-semi",
+ "-Werror",
+ "-Winconsistent-missing-override",
],
}
diff --git a/libs/binder/ndk/tests/iface.cpp b/libs/binder/ndk/tests/iface.cpp
index 3ee36cd..a532ae1 100644
--- a/libs/binder/ndk/tests/iface.cpp
+++ b/libs/binder/ndk/tests/iface.cpp
@@ -20,6 +20,8 @@
#include <android/binder_auto_utils.h>
+#include "../../Utils.h"
+
using ::android::sp;
using ::android::wp;
@@ -156,10 +158,9 @@
}
sp<IFoo> IFoo::getService(const char* instance, AIBinder** outBinder) {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
AIBinder* binder = AServiceManager_getService(instance); // maybe nullptr
-#pragma clang diagnostic pop
+ LIBBINDER_IGNORE_END()
if (binder == nullptr) {
return nullptr;
}
diff --git a/libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp b/libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp
index e2697c6..2bc1422 100644
--- a/libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp
+++ b/libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp
@@ -42,6 +42,7 @@
#include <mutex>
#include <thread>
+#include "../Utils.h"
#include "android/binder_ibinder.h"
using namespace android;
@@ -69,21 +70,21 @@
};
class MyBinderNdkUnitTest : public aidl::BnBinderNdkUnitTest {
- ndk::ScopedAStatus repeatInt(int32_t in, int32_t* out) {
+ ndk::ScopedAStatus repeatInt(int32_t in, int32_t* out) override {
*out = in;
return ndk::ScopedAStatus::ok();
}
- ndk::ScopedAStatus takeInterface(const std::shared_ptr<aidl::IEmpty>& empty) {
+ ndk::ScopedAStatus takeInterface(const std::shared_ptr<aidl::IEmpty>& empty) override {
(void)empty;
return ndk::ScopedAStatus::ok();
}
- ndk::ScopedAStatus forceFlushCommands() {
+ ndk::ScopedAStatus forceFlushCommands() override {
// warning: this is assuming that libbinder_ndk is using the same copy
// of libbinder that we are.
android::IPCThreadState::self()->flushCommands();
return ndk::ScopedAStatus::ok();
}
- ndk::ScopedAStatus getsRequestedSid(bool* out) {
+ ndk::ScopedAStatus getsRequestedSid(bool* out) override {
const char* sid = AIBinder_getCallingSid();
std::cout << "Got security context: " << (sid ?: "null") << std::endl;
*out = sid != nullptr;
@@ -97,11 +98,11 @@
fsync(out);
return STATUS_OK;
}
- ndk::ScopedAStatus forcePersist(bool persist) {
+ ndk::ScopedAStatus forcePersist(bool persist) override {
AServiceManager_forceLazyServicesPersist(persist);
return ndk::ScopedAStatus::ok();
}
- ndk::ScopedAStatus setCustomActiveServicesCallback() {
+ ndk::ScopedAStatus setCustomActiveServicesCallback() override {
AServiceManager_setActiveServicesCallback(activeServicesCallback, this);
return ndk::ScopedAStatus::ok();
}
@@ -342,10 +343,9 @@
// libbinder across processes to the NDK service which doesn't implement
// shell
static const sp<android::IServiceManager> sm(android::defaultServiceManager());
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
sp<IBinder> testService = sm->getService(String16(IFoo::kSomeInstanceName));
-#pragma clang diagnostic pop
+ LIBBINDER_IGNORE_END()
Vector<String16> argsVec;
EXPECT_EQ(OK, IBinder::shellCommand(testService, STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO,
@@ -388,10 +388,9 @@
// checkService on it, since the other process serving it might not be started yet.
{
// getService, not waitForService, to take advantage of timeout
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
auto binder = ndk::SpAIBinder(AServiceManager_getService(IFoo::kSomeInstanceName));
-#pragma clang diagnostic pop
+ LIBBINDER_IGNORE_END()
ASSERT_NE(nullptr, binder.get());
}
@@ -425,7 +424,7 @@
// At the time of writing this test, there is no good interface guaranteed
// to be on all devices. Cuttlefish has light, so this will generally test
// things.
- EXPECT_EQ(count, hasLight ? 1 : 0);
+ EXPECT_EQ(count, hasLight ? 1u : 0u);
}
TEST(NdkBinder, GetLazyService) {
@@ -515,7 +514,7 @@
// may reference other cookie members
(*funcs->onDeath)();
-};
+}
void LambdaOnUnlink(void* cookie) {
auto funcs = static_cast<DeathRecipientCookie*>(cookie);
(*funcs->onUnlink)();
@@ -523,7 +522,7 @@
// may reference other cookie members
delete funcs;
-};
+}
TEST(NdkBinder, DeathRecipient) {
using namespace std::chrono_literals;
@@ -581,10 +580,9 @@
}
TEST(NdkBinder, RetrieveNonNdkService) {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
AIBinder* binder = AServiceManager_getService(kExistingNonNdkService);
-#pragma clang diagnostic pop
+ LIBBINDER_IGNORE_END()
ASSERT_NE(nullptr, binder);
EXPECT_TRUE(AIBinder_isRemote(binder));
EXPECT_TRUE(AIBinder_isAlive(binder));
@@ -598,10 +596,9 @@
}
TEST(NdkBinder, LinkToDeath) {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
AIBinder* binder = AServiceManager_getService(kExistingNonNdkService);
-#pragma clang diagnostic pop
+ LIBBINDER_IGNORE_END()
ASSERT_NE(nullptr, binder);
AIBinder_DeathRecipient* recipient = AIBinder_DeathRecipient_new(OnBinderDeath);
@@ -631,10 +628,9 @@
}
TEST(NdkBinder, SetInheritRtNonLocal) {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
AIBinder* binder = AServiceManager_getService(kExistingNonNdkService);
-#pragma clang diagnostic pop
+ LIBBINDER_IGNORE_END()
ASSERT_NE(binder, nullptr);
ASSERT_TRUE(AIBinder_isRemote(binder));
@@ -670,14 +666,13 @@
}
TEST(NdkBinder, EqualityOfRemoteBinderPointer) {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
AIBinder* binderA = AServiceManager_getService(kExistingNonNdkService);
ASSERT_NE(nullptr, binderA);
AIBinder* binderB = AServiceManager_getService(kExistingNonNdkService);
ASSERT_NE(nullptr, binderB);
-#pragma clang diagnostic pop
+ LIBBINDER_IGNORE_END()
EXPECT_EQ(binderA, binderB);
@@ -691,10 +686,9 @@
}
TEST(NdkBinder, ABpBinderRefCount) {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
AIBinder* binder = AServiceManager_getService(kExistingNonNdkService);
-#pragma clang diagnostic pop
+ LIBBINDER_IGNORE_END()
AIBinder_Weak* wBinder = AIBinder_Weak_new(binder);
ASSERT_NE(nullptr, binder);
@@ -717,10 +711,9 @@
}
TEST(NdkBinder, RequestedSidWorks) {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
ndk::SpAIBinder binder(AServiceManager_getService(kBinderNdkUnitTestService));
-#pragma clang diagnostic pop
+ LIBBINDER_IGNORE_END()
std::shared_ptr<aidl::IBinderNdkUnitTest> service =
aidl::IBinderNdkUnitTest::fromBinder(binder);
@@ -743,10 +736,9 @@
std::shared_ptr<MyEmpty> empty = ndk::SharedRefBase::make<MyEmpty>();
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
ndk::SpAIBinder binder(AServiceManager_getService(kBinderNdkUnitTestService));
-#pragma clang diagnostic pop
+ LIBBINDER_IGNORE_END()
std::shared_ptr<aidl::IBinderNdkUnitTest> service =
aidl::IBinderNdkUnitTest::fromBinder(binder);
@@ -767,14 +759,11 @@
}
TEST(NdkBinder, ConvertToPlatformBinder) {
- for (const ndk::SpAIBinder& binder :
- {// remote
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- ndk::SpAIBinder(AServiceManager_getService(kBinderNdkUnitTestService)),
-#pragma clang diagnostic pop
- // local
- ndk::SharedRefBase::make<MyBinderNdkUnitTest>()->asBinder()}) {
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
+ ndk::SpAIBinder remoteBinder(AServiceManager_getService(kBinderNdkUnitTestService));
+ LIBBINDER_IGNORE_END()
+ auto localBinder = ndk::SharedRefBase::make<MyBinderNdkUnitTest>()->asBinder();
+ for (const ndk::SpAIBinder& binder : {remoteBinder, localBinder}) {
// convert to platform binder
EXPECT_NE(binder, nullptr);
sp<IBinder> platformBinder = AIBinder_toPlatformBinder(binder.get());
@@ -803,14 +792,11 @@
}
TEST(NdkBinder, GetAndVerifyScopedAIBinder_Weak) {
- for (const ndk::SpAIBinder& binder :
- {// remote
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- ndk::SpAIBinder(AServiceManager_getService(kBinderNdkUnitTestService)),
-#pragma clang diagnostic pop
- // local
- ndk::SharedRefBase::make<MyBinderNdkUnitTest>()->asBinder()}) {
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
+ ndk::SpAIBinder remoteBinder(AServiceManager_getService(kBinderNdkUnitTestService));
+ LIBBINDER_IGNORE_END()
+ auto localBinder = ndk::SharedRefBase::make<MyBinderNdkUnitTest>()->asBinder();
+ for (const ndk::SpAIBinder& binder : {remoteBinder, localBinder}) {
// get a const ScopedAIBinder_Weak and verify promote
EXPECT_NE(binder.get(), nullptr);
const ndk::ScopedAIBinder_Weak wkAIBinder =
@@ -879,7 +865,7 @@
sp<MyResultReceiver> resultReceiver = new MyResultReceiver();
Vector<String16> argsVec;
- for (int i = 0; i < args.size(); i++) {
+ for (size_t i = 0; i < args.size(); i++) {
argsVec.add(String16(args[i]));
}
status_t error = IBinder::shellCommand(unitTestService, inFd[0], outFd[0], errFd[0], argsVec,
@@ -903,10 +889,9 @@
TEST(NdkBinder, UseHandleShellCommand) {
static const sp<android::IServiceManager> sm(android::defaultServiceManager());
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
sp<IBinder> testService = sm->getService(String16(kBinderNdkUnitTestService));
-#pragma clang diagnostic pop
+ LIBBINDER_IGNORE_END()
EXPECT_EQ("", shellCmdToString(testService, {}));
EXPECT_EQ("", shellCmdToString(testService, {"", ""}));
@@ -916,10 +901,9 @@
TEST(NdkBinder, FlaggedServiceAccessible) {
static const sp<android::IServiceManager> sm(android::defaultServiceManager());
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ LIBBINDER_IGNORE("-Wdeprecated-declarations")
sp<IBinder> testService = sm->getService(String16(kBinderNdkUnitTestServiceFlagged));
-#pragma clang diagnostic pop
+ LIBBINDER_IGNORE_END()
ASSERT_NE(nullptr, testService);
}