Port GLOBAL[_CLANG]_CFLAGS_NO_OVERRIDE from make
Change-Id: I4f0f8ec7620e4477f60bf9cf1ae0c005470c89d4
diff --git a/cc/builder.go b/cc/builder.go
index 98f66d9..bcfbb6e 100644
--- a/cc/builder.go
+++ b/cc/builder.go
@@ -149,6 +149,14 @@
cppflags := flags.globalFlags + " " + flags.cFlags + " " + flags.cppFlags
asflags := flags.globalFlags + " " + flags.asFlags
+ if flags.clang {
+ cflags += " ${noOverrideClangGlobalCflags}"
+ cppflags += " ${noOverrideClangGlobalCflags}"
+ } else {
+ cflags += " ${noOverrideGlobalCflags}"
+ cppflags += " ${noOverrideGlobalCflags}"
+ }
+
for i, srcFile := range srcFiles {
objFile := common.ObjPathWithExt(ctx, srcFile, subdir, "o")
diff --git a/cc/cc.go b/cc/cc.go
index cf4bae3..717e598 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -103,6 +103,11 @@
"-Wsign-promo",
}
+ noOverrideGlobalCflags = []string{
+ "-Werror=int-to-pointer-cast",
+ "-Werror=pointer-to-int-cast",
+ }
+
illegalFlags = []string{
"-w",
}
@@ -112,6 +117,7 @@
pctx.StaticVariable("commonGlobalCflags", strings.Join(commonGlobalCflags, " "))
pctx.StaticVariable("deviceGlobalCflags", strings.Join(deviceGlobalCflags, " "))
pctx.StaticVariable("hostGlobalCflags", strings.Join(hostGlobalCflags, " "))
+ pctx.StaticVariable("noOverrideGlobalCflags", strings.Join(noOverrideGlobalCflags, " "))
pctx.StaticVariable("commonGlobalCppflags", strings.Join(commonGlobalCppflags, " "))
@@ -121,6 +127,9 @@
strings.Join(append(clangFilterUnknownCflags(deviceGlobalCflags), "${clangExtraTargetCflags}"), " "))
pctx.StaticVariable("hostClangGlobalCflags",
strings.Join(clangFilterUnknownCflags(hostGlobalCflags), " "))
+ pctx.StaticVariable("noOverrideClangGlobalCflags",
+ strings.Join(append(clangFilterUnknownCflags(noOverrideGlobalCflags), "${clangExtraNoOverrideCflags}"), " "))
+
pctx.StaticVariable("commonClangGlobalCppflags",
strings.Join(append(clangFilterUnknownCflags(commonGlobalCppflags), "${clangExtraCppflags}"), " "))
diff --git a/cc/clang.go b/cc/clang.go
index df7ec01..f4c29f0 100644
--- a/cc/clang.go
+++ b/cc/clang.go
@@ -101,6 +101,12 @@
pctx.StaticVariable("clangExtraTargetCflags", strings.Join([]string{
"-nostdlibinc",
}, " "))
+
+ pctx.StaticVariable("clangExtraNoOverrideCflags", strings.Join([]string{
+ "-Werror=address-of-temporary",
+ "-Werror=null-dereference",
+ "-Werror=return-type",
+ }, " "))
}
func clangFilterUnknownCflags(cflags []string) []string {