[cfe-dev] [PING][BUG] -Wunreachable-code not working
Artem Dergachev via cfe-dev
cfe-dev at lists.llvm.org
Thu Apr 12 18:53:59 PDT 2018
I didn't look at these clang warnings specifically, so i might be
completely wrong, but i suspect that a lot of warnings are suppressed in
mere presence of macros. It is just too easy to produce weird code by
combining completely valid macros. Probably not the best example but
gives a rough idea:
#ifdef WINDOWS
#define SHOULD_USE_X 0
#else
#define SHOULD_USE_X shouldUseX();
#endif
if (SHOULD_USE_X) {
// Should we emit a deadcode warning here under Windows?
}
Such suppression might probably be made less brutal, but i'll be
surprised if it were possible to get away with not having it at all. And
it's pretty tricky to find deadcode before the preprocessor runs, when
you're still capable of accidentally concatenating 'ret' and 'urn' into
'return'. So it's not the most pleasant problem to solve, and it's
usually not that terrible when we don't give a warning (it's much less
terrible than emitting a warning that's not actionable), so people
usually make various suppressions for this sort of stuff.
On 4/12/18 1:55 PM, Martin Galvan via cfe-dev wrote:
> HI all,
>
> I'm reporting this bug here since the LLVM Bugzilla requires
> registering an account (which can't be done by myself manually).
>
> Basically, this code triggers the warning:
>
> int main()
> {
> return 0;
>
> int a = 42;
> }
>
> while this doesn't:
>
> #define A 42
>
> int main()
> {
> return 0;
>
> int a = A;
> }
>
> This happens on clang++-6.0. I'm not using any options other than
> -Wunreachable-code.
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
More information about the cfe-dev
mailing list