While doing builds of gcc trunk with --enable-build-with-cxx, the g++ compiler
triggers some warnings not seen with the stock build. In particular, I see...

g++ -c  -g -DIN_GCC   -W -Wall -Wwrite-strings -Wcast-qual 
-Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros 
-Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. 
-I../../gcc-4.6-20110116/gcc -I../../gcc-4.6-20110116/gcc/. 
-I../../gcc-4.6-20110116/gcc/../include 
-I../../gcc-4.6-20110116/gcc/../libcpp/include -I/sw/include -I/sw/include  
-I../../gcc-4.6-20110116/gcc/../libdecnumber 
-I../../gcc-4.6-20110116/gcc/../libdecnumber/dpd -I../libdecnumber 
-I/sw/include  -I/sw/include -DCLOOG_INT_GMP -DCLOOG_ORG -I/sw/include 
../../gcc-4.6-20110116/gcc/fixed-value.c -o fixed-value.o
../../gcc-4.6-20110116/gcc/except.c: In function 'void dump_eh_tree(FILE*, 
function*)':
../../gcc-4.6-20110116/gcc/except.c:3197: warning: suggest a space before ';' 
or explicit braces around empty body in 'for' statement
../../gcc-4.6-20110116/gcc/dwarf2out.c: In function 'void 
output_die(die_struct*)':
../../gcc-4.6-20110116/gcc/dwarf2out.c:11184: warning: format not a string 
literal and no format arguments

where we have...

      if (i->landing_pads)
        {
          eh_landing_pad lp;

          fprintf (out, " land:");
          if (current_ir_type () == IR_GIMPLE)
            {
              for (lp = i->landing_pads; lp ; lp = lp->next_lp)
                {
                  fprintf (out, "{%i,", lp->index);
                  print_generic_expr (out, lp->post_landing_pad, 0);
                  fputc ('}', out);
                  if (lp->next_lp)
                    fputc (',', out);
                }
            }
          else
            {
              for (lp = i->landing_pads; lp ; lp = lp->next_lp);
                {
                  fprintf (out, "{%i,", lp->index);
                  if (lp->landing_pad)
                    fprintf (out, "%i%s,", INSN_UID (lp->landing_pad),
                             NOTE_P (lp->landing_pad) ? "(del)" : "");
                  else
                    fprintf (out, "(nil),");
                  if (lp->post_landing_pad)
                    {
                      rtx lab = label_rtx (lp->post_landing_pad);
                      fprintf (out, "%i%s}", INSN_UID (lab),
                               NOTE_P (lab) ? "(del)" : "");
                    }
                  else
                    fprintf (out, "(nil)}");
                  if (lp->next_lp)
                    fputc (',', out);
                }
            }
        }

The unnecessary bracing immediately after...

              for (lp = i->landing_pads; lp ; lp = lp->next_lp);

seems odd (as if the line above has accidentally gotten a ';' added).
Is there a coding error here?
               Jack

Reply via email to