------- Additional Comments From steven at gcc dot gnu dot org 2005-08-14 15:48 ------- Smaller test case: ===================================================== typedef struct { char **visbuf; char **allbuf; } TScreen; void VTallocbuf(TScreen *screen, unsigned long savelines) { screen->visbuf = &screen->allbuf[savelines]; } ===================================================== On AMD64 this gives me: salq $3, %rsi addq 8(%rdi), %rsi movq %rsi, (%rdi) ret instead of movq 8(%rdi), %rax leaq (%rax,%rsi,8), %rsi movq %rsi, (%rdi) ret
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23303