On 06/09/2015 11:31 AM, Patrick Palka wrote:
This patch improves the heuristics of the warning in a number of ways.
The improvements are hopefully adequately documented in the code
comments.

The additions to the test case also highlight the improvements.

I tested an earlier version of this patch on more than a dozen C code
bases.  I only found one class of bogus warnings yet emitted, in the
libpng and bdwgc projects.  These projects have a coding style which
indents code inside #ifdefs as if this code was guarded by an if(), e.g.

   if (foo != 0)
     x = 10;
   else       // GUARD
     y = 100; // BODY

   #ifdef BAR
     blah ();  // NEXT
   #endif

These bogus warnings are pre-existing, however (i.e. not caused by this
patch).

gcc/c-family/ChangeLog:

        * c-indentation.c (should_warn_for_misleading_indentation):
        Improve heuristics.

gcc/testsuite/ChangeLog:

        * c-c++-common/Wmisleading-indentation.c: Add more tests.
OK after confirming a successful bootstrap & regression test.

jeff

Reply via email to