------- Additional Comments From rearnsha at gcc dot gnu dot org 2005-08-11 23:12 ------- Fixed in mainline by the introduction of tree-ssa. Creating a fix for 3.4 would be very difficult and, given the rarity of this problem and the availibility of a workaround (below), I see no point in trying to fix this.
The work-around is to declare a function variable and assign x+2 to that variable. The fuction variable can then be called without problems. So test-case can be re-expressed as: unsigned long x[4]; void foo(void) { void (*f)() = (void(*)())(x + 2); f(); } which then compiles without error. -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED Target Milestone|--- |4.0.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21613