internal compiler error
Brought to you by:
jmarshall
From: BPetersen@Handspring.com - 2000-09-18 22:42:17
|
Any idea why we'd be getting the below error with the below code? It is pretty interesting -- I'm getting an internal compiler error. The code is attempting to calculate the space needed to copy the preceding function into RAM by subtracting its function pointer from the one preceding it. If you change the pointers to: volatile Ptr p1; volatile Ptr p2; then everything works fine. The arithmetic is very straightforward, and it didn't reproduce in the very simplest case. bob ------------------------------------------------------------------ void Func2 () { Ptr p1; Ptr p2; // Allocate a block large enough to hold the above procedure. p1 = (Ptr) Func1; p2 = (Ptr) Func2; size = p2 - p1; ... } // line 356 ------------------------------------------------------------------ Error: ../Src/file.c: In function `Func2': file.c (356): internal error--insn does not satisfy its constraints: (insn 86 19 87 (set (reg/v:SI 3 %d3) (plus:SI (pc) (symbol_ref/v:SI ("Func2")))) 42 {movsi+1} (nil) (nil)) |