1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Bug 266305 - Add common warning options to GCC(Clang

Add common warning options usually not included in -Wall. (GCC/Clang)
Added hardening options and address randomization under misc
section (GCC)
Added sanitize options under debug section. (GCC/Clang)

Change-Id: I885d8f49192018e50fcc5d28ee5e60d8785aa947
Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com>
This commit is contained in:
Marco Stornelli 2020-01-01 14:20:04 +01:00
parent 9f1ccbd536
commit aa08b85b6f
5 changed files with 504 additions and 1 deletions

View file

@ -151,6 +151,11 @@ Option.Posix.Debug.Max=Maximum (-g3)
Option.Posix.Debug.Other=Other debugging flags
Option.Posix.Debug.gprof=Generate gprof information (-pg)
Option.Posix.Debug.prof=Generate prof information (-p)
Option.Posix.Debug.sanitaddress=Sanitize address (-fsanitize=address)
Option.Posix.Debug.sanitpointers=Sanitize pointer operations (-fsanitize=pointer-compare -fsanitize=pointer-subtract)
Option.Posix.Debug.sanitthread=Sanitize data race in multi-thread (-fsanitize=thread)
Option.Posix.Debug.sanitleak=Sanitize memory leak (-fsanitize=leak)
Option.Posix.Debug.sanitundefined=Sanitize undefined behavior (-fsanitize=undefined)
Option.Posix.Warn.Syntax=Check syntax only (-fsyntax-only)
Option.Posix.Warn.Pedandic=Pedantic (-pedantic)
@ -160,6 +165,26 @@ Option.Posix.Warn.allwarn=All warnings (-Wall)
Option.Posix.Warn.extrawarn=Extra warnings (-Wextra)
Option.Posix.Warn.toerrs=Warnings as errors (-Werror)
Option.Posix.Warn.wconversion=Implicit conversion warnings (-Wconversion)
Option.Posix.Warn.wfloatequal=Direct float equal check (-Wfloat-equal)
Option.Posix.Warn.wcastalign=Pointer cast with different alignment (-Wcast-align)
Option.Posix.Warn.wcastqual=Removing type qualifier from cast target type (-Wcast-qual)
Option.Posix.Warn.wctordtorprivacy=All ctor and dtor private (-Wctor-dtor-privacy)
Option.Posix.Warn.wdisabledopt=Requested optimization pass is disabled (-Wdisabled-optimization)
Option.Posix.Warn.wlogicalop=Suspicious uses of logical operators (-Wlogical-op)
Option.Posix.Warn.wmissingdecl=Global function without previous declaration (-Wmissing-declarations)
Option.Posix.Warn.wmissingincdir=User-supplied include directory does not exist (-Wmissing-include-dirs)
Option.Posix.Warn.wnoexccept=Noexcept false but never throw exception (-Wnoexcept)
Option.Posix.Warn.woldstylecast=C-style cast used (-Wold-style-cast)
Option.Posix.Warn.woverloadedvirtual=Function hides virtual functions from base class (-Woverloaded-virtual)
Option.Posix.Warn.wredundantdecl=More than one declaration in the same scope (-Wredundant-decls)
Option.Posix.Warn.wshadow=Local symbol shadows upper scope symbol (-Wshadow)
Option.Posix.Warn.wsignconv=Implicit conversions that may change the sign (-Wsign-conversion)
Option.Posix.Warn.wsignpromo=Overload resolution promotes unsigned to signed type (-Wsign-promo)
Option.Posix.Warn.wstrictnullsent=Use of an uncasted NULL as sentinel (-Wstrict-null-sentinel)
Option.Posix.Warn.wswitchdef=A switch statement does not have a default case (-Wswitch-default)
Option.Posix.Warn.wundef=An undefined identifier is evaluated in an #if directive (-Wundef)
Option.Posix.Warn.weffcpp=Effective C++ guidelines (-Weffc++)
Option.Posix.Warn.wwritestring=Treat strings always as const (-Wwrite-strings)
Option.Posix.Verbose=Verbose (-v)
Option.OtherFlags=Other flags
@ -170,6 +195,8 @@ Option.codecovTip="Check this flag if you want to enable Profile Code Coverage i
Option.Pthread=Support for pthread (-pthread)
Option.PthreadCompilerTip="If you select this option, you probably want to select -pthread in the linker settings."
Option.PthreadLinkerTip="If you select this option, you probably want to select -pthread in the compiler settings."
Option.Security=Hardening options (-fstack-protector-all -Wformat=2 -Wformat-security -Wstrict-overflow)
Option.Randomization=Address randomization (-fPIE)
Option.Posix.Linker.NoStartFiles=Do not use standard start files (-nostartfiles)
Option.Posix.Linker.NoDefLibs=Do not use default libraries (-nodefaultlibs)

View file

@ -1217,6 +1217,46 @@
tip="%Option.codecovTip"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Debug.sanitaddress"
category="gnu.c.compiler.category.debug"
command="-fsanitize-address"
id="gnu.c.compiler.option.debugging.sanitaddress"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Debug.sanitpointers"
category="gnu.c.compiler.category.debug"
command="-fsanitize-pointer-compare -fsanitize=pointer-subtract"
id="gnu.c.compiler.option.debugging.sanitpointers"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Debug.sanitthread"
category="gnu.c.compiler.category.debug"
command="-fsanitize=thread"
id="gnu.c.compiler.option.debugging.sanitthread"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Debug.sanitleak"
category="gnu.c.compiler.category.debug"
command="-fsanitize=leak"
id="gnu.c.compiler.option.debugging.sanitleak"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Debug.sanitundefined"
category="gnu.c.compiler.category.debug"
command="-fsanitize=undefined"
id="gnu.c.compiler.option.debugging.sanitundef"
valueType="boolean">
</option>
<optionCategory
owner="cdt.managedbuild.tool.gnu.c.compiler"
name="%OptionCategory.Warn"
@ -1286,6 +1326,110 @@
id="gnu.c.compiler.option.warnings.wconversion"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wcastalign"
category="gnu.c.compiler.category.warnings"
command="-Wcast-align"
id="gnu.c.compiler.option.warnings.wcastalign"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wcastqual"
category="gnu.c.compiler.category.warnings"
command="-Wcast-qual"
id="gnu.c.compiler.option.warnings.wcastqual"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wdisabledopt"
category="gnu.c.compiler.category.warnings"
command="-Wdisabled-optimization"
id="gnu.c.compiler.option.warnings.wdisabledopt"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wlogicalop"
category="gnu.c.compiler.category.warnings"
command="-Wlogical-op"
id="gnu.c.compiler.option.warnings.wlogicalop"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wmissingdecl"
category="gnu.c.compiler.category.warnings"
command="-Wmissing-declarations"
id="gnu.c.compiler.option.warnings.wmissingdecl"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wmissingincdir"
category="gnu.c.compiler.category.warnings"
command="-Wmissing-include-dirs"
id="gnu.c.compiler.option.warnings.wmissingincdir"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wredundantdecl"
category="gnu.c.compiler.category.warnings"
command="-Wredundant-decls"
id="gnu.c.compiler.option.warnings.wredundantdecl"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wshadow"
category="gnu.c.compiler.category.warnings"
command="-Wshadow"
id="gnu.c.compiler.option.warnings.wshadow"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wsignconv"
category="gnu.c.compiler.category.warnings"
command="-Wsign-conversion"
id="gnu.c.compiler.option.warnings.wsignconv"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wswitchdef"
category="gnu.c.compiler.category.warnings"
command="-Wswitch-default"
id="gnu.c.compiler.option.warnings.wswitchdef"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wundef"
category="gnu.c.compiler.category.warnings"
command="-Wundef"
id="gnu.c.compiler.option.warnings.wundef"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wwritestring"
category="gnu.c.compiler.category.warnings"
command="-Wwrite-strings"
id="gnu.c.compiler.option.warnings.wwritestrings"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wfloatequal"
category="gnu.c.compiler.category.warnings"
command="-Wfloat-equal"
id="gnu.c.compiler.option.warnings.wfloatequal"
valueType="boolean">
</option>
<optionCategory
owner="cdt.managedbuild.tool.gnu.c.compiler"
name="%OptionCategory.Misc"
@ -1322,6 +1466,22 @@
name="%Option.PIC"
valueType="boolean">
</option>
<option
category="gnu.c.compiler.category.other"
command="-fstack-protector-all -Wformat=2 -Wformat-security -Wstrict-overflow"
defaultValue="false"
id="gnu.c.compiler.option.misc.hardening"
name="%Option.Security"
valueType="boolean">
</option>
<option
category="gnu.c.compiler.category.other"
command="-fPIE"
defaultValue="false"
id="gnu.c.compiler.option.misc.randomization"
name="%Option.Randomization"
valueType="boolean">
</option>
<inputType
sourceContentType="org.eclipse.cdt.core.cSource"
sources="c"
@ -1605,6 +1765,46 @@
tip="%Option.codecovTip"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Debug.sanitaddress"
category="gnu.cpp.compiler.category.debug"
command="-fsanitize=address"
id="gnu.cpp.compiler.option.debugging.sanitaddress"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Debug.sanitpointers"
category="gnu.cpp.compiler.category.debug"
command="-fsanitize=pointer-compare -fsanitize=pointer-subtract"
id="gnu.cpp.compiler.option.debugging.sanitpointers"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Debug.sanitthread"
category="gnu.cpp.compiler.category.debug"
command="-fsanitize=thread"
id="gnu.cpp.compiler.option.debugging.sanitthread"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Debug.sanitleak"
category="gnu.cpp.compiler.category.debug"
command="-fsanitize=leak"
id="gnu.cpp.compiler.option.debugging.sanitleak"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Debug.sanitundefined"
category="gnu.cpp.compiler.category.debug"
command="-fsanitize=undefined"
id="gnu.cpp.compiler.option.debugging.sanitundef"
valueType="boolean">
</option>
<optionCategory
owner="cdt.managedbuild.tool.gnu.cpp.compiler"
name="%OptionCategory.Warn"
@ -1674,6 +1874,158 @@
id="gnu.cpp.compiler.option.warnings.wconversion"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wcastalign"
category="gnu.cpp.compiler.category.warnings"
command="-Wcast-align"
id="gnu.cpp.compiler.option.warnings.wcastalign"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wcastqual"
category="gnu.cpp.compiler.category.warnings"
command="-Wcast-qual"
id="gnu.cpp.compiler.option.warnings.wcastqual"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wctordtorprivacy"
category="gnu.cpp.compiler.category.warnings"
command="-Wctor-dtor-privacy"
id="gnu.cpp.compiler.option.warnings.wctordtorprivacy"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wdisabledopt"
category="gnu.cpp.compiler.category.warnings"
command="-Wdisabled-optimization"
id="gnu.cpp.compiler.option.warnings.wdisabledopt"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wlogicalop"
category="gnu.cpp.compiler.category.warnings"
command="-Wlogical-op"
id="gnu.cpp.compiler.option.warnings.wlogicalop"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wmissingdecl"
category="gnu.cpp.compiler.category.warnings"
command="-Wmissing-declarations"
id="gnu.cpp.compiler.option.warnings.wmissingdecl"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wmissingincdir"
category="gnu.cpp.compiler.category.warnings"
command="-Wmissing-include-dirs"
id="gnu.cpp.compiler.option.warnings.wmissingincdir"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wnoexccept"
category="gnu.cpp.compiler.category.warnings"
command="-Wnoexcept"
id="gnu.cpp.compiler.option.warnings.wnoexccept"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.woldstylecast"
category="gnu.cpp.compiler.category.warnings"
command="-Wold-style-cast"
id="gnu.cpp.compiler.option.warnings.woldstylecast"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.woverloadedvirtual"
category="gnu.cpp.compiler.category.warnings"
command="-Woverloaded-virtual"
id="gnu.cpp.compiler.option.warnings.woverloadedvirtual"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wredundantdecl"
category="gnu.cpp.compiler.category.warnings"
command="-Wredundant-decls"
id="gnu.cpp.compiler.option.warnings.wredundantdecl"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wshadow"
category="gnu.cpp.compiler.category.warnings"
command="-Wshadow"
id="gnu.cpp.compiler.option.warnings.wshadow"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wsignconv"
category="gnu.cpp.compiler.category.warnings"
command="-Wsign-conversion"
id="gnu.cpp.compiler.option.warnings.wsignconv"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wsignpromo"
category="gnu.cpp.compiler.category.warnings"
command="-Wsign-promo"
id="gnu.cpp.compiler.option.warnings.wsignpromo"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wstrictnullsent"
category="gnu.cpp.compiler.category.warnings"
command="-Wstrict-null-sentinel"
id="gnu.cpp.compiler.option.warnings.wstrictnullsent"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wswitchdef"
category="gnu.cpp.compiler.category.warnings"
command="-Wswitch-default"
id="gnu.cpp.compiler.option.warnings.wswitchdef"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wundef"
category="gnu.cpp.compiler.category.warnings"
command="-Wundef"
id="gnu.cpp.compiler.option.warnings.wundef"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.weffcpp"
category="gnu.cpp.compiler.category.warnings"
command="-Weffc++"
id="gnu.cpp.compiler.option.warnings.weffcpp"
valueType="boolean">
</option>
<option
defaultValue="false"
name="%Option.Posix.Warn.wfloatequal"
category="gnu.cpp.compiler.category.warnings"
command="-Wfloat-equal"
id="gnu.cpp.compiler.option.warnings.wfloatequal"
valueType="boolean">
</option>
<optionCategory
owner="cdt.managedbuild.tool.gnu.cpp.compiler"
name="%OptionCategory.Misc"
@ -1702,6 +2054,22 @@
name="%Option.PIC"
valueType="boolean">
</option>
<option
category="gnu.cpp.compiler.category.other"
command="-fstack-protector-all -Wformat=2 -Wformat-security -Wstrict-overflow"
defaultValue="false"
id="gnu.cpp.compiler.option.misc.hardening"
name="%Option.Security"
valueType="boolean">
</option>
<option
category="gnu.cpp.compiler.category.other"
command="-fPIE"
defaultValue="false"
id="gnu.cpp.compiler.option.misc.randomization"
name="%Option.Randomization"
valueType="boolean">
</option>
<inputType
sourceContentType="org.eclipse.cdt.core.cxxSource"
sources="c,C,cc,cxx,cpp,cp,CPP"

View file

@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.llvm.ui;singleton:=true
Bundle-Version: 1.1.200.qualifier
Bundle-Version: 1.1.300.qualifier
Bundle-Activator: org.eclipse.cdt.managedbuilder.llvm.ui.LlvmUIPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin

View file

@ -120,6 +120,11 @@ Option.Posix.Debug.Max=Maximum (-g3)
Option.Posix.Debug.Other=Other debugging flags
#Option.Posix.Debug.gprof=Generate gprof information (-pg)
#Option.Posix.Debug.prof=Generate prof information (-p)
Option.Posix.Debug.sanitaddress=Sanitize address (-fsanitize=address)
Option.Posix.Debug.sanitpointers=Sanitize pointer operations (-fsanitize=pointer-compare -fsanitize=pointer-subtract)
Option.Posix.Debug.sanitthread=Sanitize data race in multi-thread (-fsanitize=thread)
Option.Posix.Debug.sanitleak=Sanitize memory leak (-fsanitize=leak)
Option.Posix.Debug.sanitundefined=Sanitize undefined behavior (-fsanitize=undefined)
Option.Posix.Warn.Syntax=Check syntax only (-fsyntax-only)
Option.Posix.Warn.Pedandic=Pedantic (-pedantic)
@ -127,6 +132,13 @@ Option.Posix.Warn.PedErrors=Pedantic warnings as errors (-pedantic-errors)
Option.Posix.Warn.nowarn=Inhibit all warnings (-w)
Option.Posix.Warn.allwarn=All warnings (-Wall)
Option.Posix.Warn.toerrs=Warnings as errors (-Werror)
Option.Posix.Warn.wfloatequal=Direct float equal check (-Wfloat-equal)
Option.Posix.Warn.wcastalign=Pointer cast with different alignment (-Wcast-align)
Option.Posix.Warn.wcastqual=Removing type qualifier from cast target type (-Wcast-qual)
Option.Posix.Warn.woldstylecast=C-style cast used (-Wold-style-cast)
Option.Posix.Warn.wsignconv=Implicit conversions that may change the sign (-Wsign-conversion)
Option.Posix.Warn.wundef=An undefined identifier is evaluated in an #if directive (-Wundef)
Option.Posix.Warn.weffcpp=Effective C++ guidelines (-Weffc++)
Option.Posix.Verbose=Verbose (-v)
Option.OtherFlags=Other flags

View file

@ -876,6 +876,46 @@
name="%Option.Posix.Debug.Other"
valueType="string">
</option>
<option
defaultValue="false"
category="llvm.c_cpp.compiler.category.debug"
id="llvm.c_cpp.compiler.option.debugging.sanitaddress"
command="-fsanitize=address"
name="%Option.Posix.Debug.sanitaddress"
valueType="boolean">
</option>
<option
defaultValue="false"
category="llvm.c_cpp.compiler.category.debug"
id="llvm.c_cpp.compiler.option.debugging.sanitpointers"
command="-fsanitize=pointer-compare -fsanitize=pointer-subtract"
name="%Option.Posix.Debug.sanitpointers"
valueType="boolean">
</option>
<option
defaultValue="false"
category="llvm.c_cpp.compiler.category.debug"
id="llvm.c_cpp.compiler.option.debugging.sanitthread"
command="-fsanitize=thread"
name="%Option.Posix.Debug.sanitthread"
valueType="boolean">
</option>
<option
defaultValue="false"
category="llvm.c_cpp.compiler.category.debug"
id="llvm.c_cpp.compiler.option.debugging.sanitleak"
command="-fsanitize=leak"
name="%Option.Posix.Debug.sanitleak"
valueType="boolean">
</option>
<option
defaultValue="false"
category="llvm.c_cpp.compiler.category.debug"
id="llvm.c_cpp.compiler.option.debugging.sanitundefined"
command="-fsanitize=undefined"
name="%Option.Posix.Debug.sanitundefined"
valueType="boolean">
</option>
<optionCategory
id="llvm.c_cpp.compiler.category.warnings"
name="%OptionCategory.Warn"
@ -929,6 +969,62 @@
name="%Option.Posix.Warn.toerrs"
valueType="boolean">
</option>
<option
category="llvm.c_cpp.compiler.category.warnings"
command="-Wfloat-equal"
defaultValue="false"
id="llvm.c_cpp.compiler.option.warnings.wfloatequal"
name="%Option.Posix.Warn.wfloatequal"
valueType="boolean">
</option>
<option
category="llvm.c_cpp.compiler.category.warnings"
command="-Wcast-align"
defaultValue="false"
id="llvm.c_cpp.compiler.option.warnings.wcastalign"
name="%Option.Posix.Warn.wcastalign"
valueType="boolean">
</option>
<option
category="llvm.c_cpp.compiler.category.warnings"
command="-Wcast-qual"
defaultValue="false"
id="llvm.c_cpp.compiler.option.warnings.wcastqual"
name="%Option.Posix.Warn.wcastqual"
valueType="boolean">
</option>
<option
category="llvm.c_cpp.compiler.category.warnings"
command="-Wold-style-cast"
defaultValue="false"
id="llvm.c_cpp.compiler.option.warnings.woldstylecast"
name="%Option.Posix.Warn.woldstylecast"
valueType="boolean">
</option>
<option
category="llvm.c_cpp.compiler.category.warnings"
command="-Wsign-conversion"
defaultValue="false"
id="llvm.c_cpp.compiler.option.warnings.wsignconv"
name="%Option.Posix.Warn.wsignconv"
valueType="boolean">
</option>
<option
category="llvm.c_cpp.compiler.category.warnings"
command="-Wundef"
defaultValue="false"
id="llvm.c_cpp.compiler.option.warnings.wundef"
name="%Option.Posix.Warn.wundef"
valueType="boolean">
</option>
<option
category="llvm.c_cpp.compiler.category.warnings"
command="-Weffc++"
defaultValue="false"
id="llvm.c_cpp.compiler.option.warnings.weffcpp"
name="%Option.Posix.Warn.weffcpp"
valueType="boolean">
</option>
<optionCategory
id="llvm.c_cpp.compiler.category.other"
name="%OptionCategory.Misc"