http://sourceware.org/bugzilla/show_bug.cgi?id=12494
Anitha Boyapati <anitha.boyapati at atmel dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |anitha.boyapati at atmel | |dot com --- Comment #4 from Anitha Boyapati <anitha.boyapati at atmel dot com> 2011-03-12 08:35:04 UTC --- (In reply to comment #2) > Created attachment 5249 [details] > Disassembly > > The wrong relaxation optimization. Note that fa gets called no matter what > value parameter x of fb has. > > Disassembly as of > avr-objdump -z -h -S -j .data -j .text computed-goto.elf > computed-goto.lst If label 'b' is not empty, I think this will not happen. I just tried a small change. Lets say: <code> goto *l[x]; a:fa(); b: z--; </code> The code generated will be : ... 8e: 09 94 ijmp 90: e9 df rcall .-46 ; 0x64 <fa> 92: 80 91 64 00 lds r24, 0x0064 96: 81 50 subi r24, 0x01 ; 1 98: 80 93 64 00 sts 0x0064, r24 9c: 08 95 ret ... (In reply to comment #1) > Created attachment 5248 [details] > .s as compiled by avr-gcc > > avr-gcc output according to GNU-C source Also, I find it a little strange that 2 ret are emitted in fb() ijmp .L6: rcall fa ; ret .L7: ret Although it does not make any semantic difference why 2 return statements? -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils