I am interested in looking at the GCC loop optimization. There are some tree 
dump flags that are registered (via register_dump_files() in tree-optimize.c). 
In particular, -fdump-tree-loopinit-raw and -fdump-tree-loopdone-raw that 
generate warnings when they should not. Specifically:

gcc -O3 -S -fdump-tree-loopinit-raw short.c

The problem is that there is also -fdump-tree-loop-raw as well, and "loop" is 
a prefix of "loopinit" and "loopdone". The function dump_switch_p_1() in tree-
dump.c calls skip_leading_substring() which works correctly for "loopinit" but 
then skips only the first four bytes when processing "loop". This 
leaves "init" dangling, and generates:

cc1: warning: ignoring unknown option 'init' in '-fdump-tree-loop'

Same for "done" of course.

No need to do -save-temps or look at any of the compiler output - this happens 
before any processing of the input file (a 4-line C program will suffice). 

Also, no urgency because the --first-- encounter where it does match the 
entire option works, so you do get the requested dumps, just the incorrect 
warning.

-- 
           Summary: Certain flags generate warnings when they should not.
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: wmahoney at unomaha dot edu
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20061

Reply via email to