summaryrefslogtreecommitdiffstats
path: root/security/pkix/warnings.mozbuild
diff options
context:
space:
mode:
Diffstat (limited to 'security/pkix/warnings.mozbuild')
-rw-r--r--security/pkix/warnings.mozbuild41
1 files changed, 41 insertions, 0 deletions
diff --git a/security/pkix/warnings.mozbuild b/security/pkix/warnings.mozbuild
new file mode 100644
index 000000000..3fdc10bd7
--- /dev/null
+++ b/security/pkix/warnings.mozbuild
@@ -0,0 +1,41 @@
+if CONFIG['CLANG_CXX']:
+ CXXFLAGS += [
+ '-Weverything',
+
+ '-Wno-c++98-compat',
+ '-Wno-c++98-compat-pedantic',
+ '-Wno-missing-prototypes',
+ '-Wno-missing-variable-declarations',
+ '-Wno-padded',
+ '-Wno-reserved-id-macro', # NSPR and NSS use reserved IDs in their include guards.
+ '-Wno-shadow', # XXX: Clang's rules are too strict for constructors.
+ '-Wno-weak-vtables', # We rely on the linker to merge the duplicate vtables.
+ ]
+elif CONFIG['_MSC_VER']:
+ CXXFLAGS += [
+ '-sdl', # Enable additional security checks based on Microsoft's SDL.
+
+ '-Wall',
+
+ '-wd4464', # relative include path contains '..'
+ '-wd4514', # 'function': unreferenced inline function has been removed
+ '-wd4668', # warning C4668: 'X' is not defined as a preprocessor macro,
+ # replacing with '0' for '#if/#elif'.
+ '-wd4710', # 'function': function not inlined
+ '-wd4711', # function 'function' selected for inline expansion
+ '-wd4800', # forcing value to bool 'true' or 'false'
+ '-wd4820', # 'bytes' bytes padding added after construct 'member_name'
+
+ # XXX: We cannot use /Za (Disable Microsoft Extensions) because windows.h
+ # won't copmile with it.
+ '-Zc:forScope', # Standard C++ rules for variable scope in for loops.
+ '-Zc:inline', # Standard C++ rules requiring definition inline functions.
+ '-Zc:rvalueCast', # Standard C++ rules for result of cast being an rvalue.
+ '-Zc:strictStrings', # Standard C++ rule that string literals are const.
+ ]
+else:
+ CXXFLAGS += [
+ '-Wall',
+ '-Wextra',
+ '-pedantic-errors',
+ ]