<div dir="ltr">Aaaaah! I had definitely missed that this was about the *de*destructor..!<div><br></div><div>I would indeed expect, like Primiano, that -Wglobal-constructors would only warn about *con*structors (one can decide to mitigate global *de*structors another way, e.g. by invoking _exit() before end of main()).</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jan 16, 2018 at 1:03 PM Malcolm Parsons <<a href="mailto:malcolm.parsons@gmail.com">malcolm.parsons@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 16 January 2018 at 10:10, Gabriel Charette via cfe-dev<br>
<<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<br>
<br>
> it seems that -Wglobal-constructors throws a warning on a global using a<br>
> constexpr default constructor on classes that don't strictly have POD<br>
> members only. Given constexpr + no params implies all members are either POD<br>
> or constexpr default constructible themselves, shouldn't Clang be able to<br>
> avoid the global constructor in all cases?<br>
<br>
The warning is about the *de*structor:<br>
<br>
> Foo f;  --> error: declaration requires a global destructor<br>
> [-Werror,-Wglobal-constructors]<br>
<br>
--<br>
Malcolm Parsons<br>
</blockquote></div>