------- 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

Reply via email to