On Wed, 2014-10-08 17:10:01 -0000, hubi...@gcc.gnu.org <hubi...@gcc.gnu.org> 
wrote:
> URL: https://gcc.gnu.org/viewcvs?rev=216010&root=gcc&view=rev
>       * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
>       pattern matching of MEM_REF.
>       (check_stmt_for_type_change): Update.

This recent commit led to fallout for all targets build with
config-list.mk:

g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions 
-fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings 
-Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic 
-Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common 
 -DHAVE_CONFIG_H -I. -I. -I../../../gcc/gcc -I../../../gcc/gcc/. 
-I../../../gcc/gcc/../include -I../../../gcc/gcc/../libcpp/include 
-I/opt/cfarm/mpc/include  -I../../../gcc/gcc/../libdecnumber 
-I../../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber 
-I../../../gcc/gcc/../libbacktrace    -o ipa-polymorphic-call.o -MT 
ipa-polymorphic-call.o -MMD -MP -MF ./.deps/ipa-polymorphic-call.TPo 
../../../gcc/gcc/ipa-polymorphic-call.c
../../../gcc/gcc/ipa-polymorphic-call.c: In function ‘tree_node* 
extr_type_from_vtbl_ptr_store(gimple, type_change_info*, long int*)’:
../../../gcc/gcc/ipa-polymorphic-call.c:2117:1: error: assuming signed overflow 
does not occur when assuming that (X + c) < X is always false 
[-Werror=strict-overflow]
 }
 ^
cc1plus: all warnings being treated as errors
make[2]: *** [ipa-polymorphic-call.o] Error 1
make[2]: Leaving directory 
`/home/jbglaw/build-configlist_mk/iq2000-elf/build-gcc/mk/iq2000-elf/gcc'
make[1]: *** [all-gcc] Error 2


(Note that this `g++' is an up-to-date revision, and the line number
mentioned is also wrong.)  It's probably caused by this chunk:


diff --git a/gcc/ipa-polymorphic-call.c b/gcc/ipa-polymorphic-call.c
index 3e4aa04..51c6709 100644
--- a/gcc/ipa-polymorphic-call.c
+++ b/gcc/ipa-polymorphic-call.c
[...]
@@ -1218,7 +1226,19 @@ extr_type_from_vtbl_ptr_store (gimple stmt, struct 
type_change_info *tci,
              print_generic_expr (dump_file, tci->instance, TDF_SLIM);
              fprintf (dump_file, " with offset %i\n", (int)tci->offset);
            }
-         return NULL_TREE;
+         return tci->offset > GET_MODE_BITSIZE (Pmode) ? error_mark_node : 
NULL_TREE;
+       }
+      if (offset != tci->offset
+         || size != POINTER_SIZE
+         || max_size != POINTER_SIZE)
+       {
+         if (dump_file)
+           fprintf (dump_file, "    wrong offset %i!=%i or size %i\n",
+                    (int)offset, (int)tci->offset, (int)size);
+         return offset + GET_MODE_BITSIZE (Pmode) <= offset            
<------------------------
+                || (max_size != -1
+                    && tci->offset + GET_MODE_BITSIZE (Pmode) > offset + 
max_size)
+                ? error_mark_node : NULL;
        }
     }
 

This is visible on all config-list.mk builds, see eg. just a few
recent ones:

m32r-elf: http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=361814
lm32-elf: http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=361741
ia64-elf: http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=361682
ia64-linux: 
http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=361738

MfG, JBG

-- 
      Jan-Benedict Glaw      jbg...@lug-owl.de              +49-172-7608481
Signature of:         "really soon now":      an unspecified period of time, 
likly to
the second  :                                 be greater than any reasonable 
definition
                                              of "soon".

Attachment: signature.asc
Description: Digital signature

Reply via email to