Comment about function `foo' size: 
 
  27                    /* function foo size 10 (9) */ 
 
show wrong value. (Compare it with next function.) 
 
Compiler: avr-gcc (GCC) 4.0.0 20050109 (experimental) 
Options:  -W -Wall -Os -Wa,-ahl 
 
The same error (for `foo') in 3.3.4 . 
 
Certainly, it is nonsense. But, maybe, this display 
of more serious mistake? 
 
Program: 
~~~~~~~~ 
int foo (int x) 
{ 
    int i; 
    for (i= 10; i; i--) 
        x *= 2; 
    return x; 
} 
 
int foo_with_true_size (int x) 
{ 
    x += 100; 
    do { 
        x *= 2; 
    } while (x > 0); 
    return x; 
} 
 
Listing: 
~~~~~~~~ 
GAS LISTING /tmp/ccJGSrye.s                     page 1 
 
 
   1                            .file   "foo.c" 
   2                            .arch avr2 
   3                    __SREG__ = 0x3f 
   4                    __SP_H__ = 0x3e 
   5                    __SP_L__ = 0x3d 
   6                    __tmp_reg__ = 0 
   7                    __zero_reg__ = 1 
   8                            .global __do_copy_data 
   9                            .global __do_clear_bss 
  10                            .text 
  11                    .global foo 
  12                            .type   foo, @function 
  13                    foo: 
  14                    /* prologue: frame size=0 */ 
  15                    /* prologue end (size=0) */ 
  16 0000 2AE0                  ldi r18,lo8(10) 
  17 0002 30E0                  ldi r19,hi8(10) 
  18                    .L2: 
  19 0004 880F                  add r24,r24 
  20 0006 991F                  adc r25,r25 
  21 0008 2150                  subi r18,lo8(-(-1)) 
  22 000a 3040                  sbci r19,hi8(-(-1)) 
  23 000c D9F7                  brne .L2 
  24                    /* epilogue: frame size=0 */ 
  25 000e 0895                  ret 
  26                    /* epilogue end (size=1) */ 
  27                    /* function foo size 10 (9) */ 
  28                            .size   foo, .-foo 
  29                    .global foo_with_true_size 
  30                            .type   foo_with_true_size, @function 
  31                    foo_with_true_size: 
  32                    /* prologue: frame size=0 */ 
  33                    /* prologue end (size=0) */ 
  34 0010 8C59                  subi r24,lo8(-(100)) 
  35 0012 9F4F                  sbci r25,hi8(-(100)) 
  36                    .L8: 
  37 0014 880F                  add r24,r24 
  38 0016 991F                  adc r25,r25 
  39 0018 1816                  cp __zero_reg__,r24 
  40 001a 1906                  cpc __zero_reg__,r25 
  41 001c DCF3                  brlt .L8 
  42                    /* epilogue: frame size=0 */ 
  43 001e 0895                  ret 
  44                    /* epilogue end (size=1) */ 
  45                    /* function foo_with_true_size size 8 (7) */ 
  46                            .size   foo_with_true_size, 
.-foo_with_true_size 
  47                    /* File "foo.c": code   18 = 0x0012 (  16), prologues 
0, epilogues   2 */

-- 
           Summary: avr-gcc 4.0 (and 3.3.4): wrong size in asm comment
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dmixm at marine dot febras dot ru
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19684

Reply via email to