------- Comment #5 from jakub at gcc dot gnu dot org 2010-01-19 16:57 ------- Created an attachment (id=19657) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19657&action=view) gcc45-pr42803.patch
Alternative patch, which should avoid exponential behavior in all cases (even when there are casts that narrowing_initializer_constant_valid_p skips). POINTER_PLUS_EXPR/PLUS_EXPR/MINUS_EXPR/CONSTRUCTOR seem to be the only ones where initializer_constant_valid_p recurses more than once, so I think it is enough to cache those. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42803