================
Comment at: lib/Basic/LangOptions.cpp:17-21
@@ -16,3 +16,7 @@
 
-const SanitizerOptions SanitizerOptions::Disabled = {};
+const SanitizerOptions SanitizerOptions::Disabled = {
+#define SANITIZER(NAME, ID) 0,
+#include "clang/Basic/Sanitizers.def"
+};
+
 
----------------
Dmitri Gribenko wrote:
> Edwin Vane wrote:
> > Dmitri Gribenko wrote:
> > > Edwin Vane wrote:
> > > > Dmitri Gribenko wrote:
> > > > > David Blaikie wrote:
> > > > > > Not sure of the motivation for this change - shouldn't the {} in 
> > > > > > the original code produce the same effect (zero initializing all 
> > > > > > the elements)?
> > > > > I have mixed feelings about this.  -Wmissing-field-initializers is a 
> > > > > different thing: all members are initialized by {}, but gcc complains 
> > > > > that initializers are not explicitly spelled in the source.
> > > > Is it a problem to explicitly do the initialization to make gcc happy 
> > > > if it has the same result as {}? I wasn't aware empty braces was 
> > > > defined to cause all fields to be initialized to 0.
> > > It just adds noise to satisfy the warning.  In this particular case it is 
> > > not actually that bad, since SanitizerOptions is generated by the same 
> > > .def file, so it will not go out of sync.
> > > 
> > Would you prefer using default constructor instead? At least I was able to 
> > find defined behaviour for this situation:
> > 
> > const SanitizerOptions SanitizerOptions::Disabled = SanitizerOptions();
> This is dynamic initialization, if I'm reading [basic.init.start] correctly.  
> (But Clang does it as static initialization because it is allowed to do so, 
> but not required.)  #define/#include is better.
Ok. So apparently {} generating warnings in gcc is a bug 
(http://stackoverflow.com/a/1539162). That doesn't change the fact that the 
warning still exists and is annoying. Using -Wno-missing-field-initializers 
seems heavy handed and the #define/#include solution is short and relatively 
future-proof.


http://llvm-reviews.chandlerc.com/D342
_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to