| Summary: | unnecessary operations in tailcall | ||
|---|---|---|---|
| Product: | gcc | Reporter: | Thomas Koenig <Thomas.Koenig> |
| Component: | middle-end | Assignee: | Not yet assigned to anyone <unassigned> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | normal | CC: | gcc-bugs |
| Priority: | P2 | ||
| Version: | 4.1.0 | ||
| Target Milestone: | --- | ||
| Host: | Target: | ||
| Build: | Known to work: | ||
| Known to fail: | Last reconfirmed: | ||
$ cat output-block.c int flush_output(void) { return add_block(); } $ gcc -O3 -S output-block.c $ cat output-block.s .file "output-block.c" .text .p2align 4,,15 .globl flush_output .type flush_output, @function flush_output: pushl %ebp movl %esp, %ebp popl %ebp jmp add_block .size flush_output, .-flush_output .ident "GCC: (GNU) 4.1.0 20050315 (experimental)" .section .note.GNU-stack,"",@progbits The operations on ebp aren't necessary.