[Bug other/46865] New: Using -save-temps (or ccache, distcc) produces different results with multiline macros containing asm code
juha.kallioinen at nokia dot com
gcc-bugzilla@gcc.gnu.org
Thu Dec 9 13:52:00 GMT 2010
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46865
Summary: Using -save-temps (or ccache, distcc) produces
different results with multiline macros containing asm
code
Product: gcc
Version: 4.5.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: other
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: juha.kallioinen@nokia.com
Created attachment 22691
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22691
example case
See the attached example case.
Also reported here:
https://bugs.launchpad.net/gcc-linaro/+bug/687406
When a piece of code containing a multiline macro construct with embedded asm
code is first preprocessed then compiled into an object or asm file, the
results are different than directly compiling them into an object file or asm
code.
The preprocessor step could take place when using -save-temps. It also happens
when using ccache or distcc.
Linux kernel arm parts have this kind of code at least in
local_irq_restore() [include/linux/irqflags.h]
-> raw_local_irq_restore() [arch/arm/include/asm/irqflags.h]
----
Result of example case without -save-temps:
.file "test.c"
.text
.globl optimized
.type optimized, @function
optimized:
.LFB0:
.cfi_startproc
#APP
# 15 "/tmp/test.c" 1
nop
# 0 "" 2
#NO_APP
ret
.cfi_endproc
.LFE0:
.size optimized, .-optimized
.ident "GCC: (GNU) 4.5.1"
.section .note.GNU-stack,"",@progbits
----
Result of example case with -save-temps:
.file "test.c"
.text
.globl optimized
.type optimized, @function
optimized:
.LFB0:
.cfi_startproc
testb $1, flags(%rip)
je .L2
#APP
# 15 "/tmp/test.c" 1
nop
# 0 "" 2
#NO_APP
ret
.L2:
#APP
# 15 "/tmp/test.c" 1
nop
# 0 "" 2
#NO_APP
ret
.cfi_endproc
.LFE0:
.size optimized, .-optimized
.ident "GCC: (GNU) 4.5.1"
.section .note.GNU-stack,"",@progbits
More information about the Gcc-bugs
mailing list