This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/23070] New: CALL_V4_CLEAR_FP_ARGS flag not properly set
- From: "tong_ho at yahoo dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 26 Jul 2005 06:36:52 -0000
- Subject: [Bug c/23070] New: CALL_V4_CLEAR_FP_ARGS flag not properly set
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
When a prototyped function of var-arg is called without any arguments
to the variable part, "crxor 6,6,6" is not generated. "-O0
-mno-prototype" does NOT resolve the problem either.
--------test.c--------
int test(const char *a, ...);
void test1(const char *a)
{ test(a, 0); }
void test2(const char *a)
{ test(a); }
--------test.s--------
.file "test.c"
.section ".text"
.align 2
.globl test1
.type test1, @function
test1:
stwu 1,-24(1)
mflr 0
stw 31,20(1)
stw 0,28(1)
mr 31,1
stw 3,8(31)
lwz 3,8(31)
li 4,0
crxor 6,6,6 <== has it
bl test
lwz 11,0(1)
lwz 0,4(11)
mtlr 0
lwz 31,-4(11)
mr 1,11
blr
.size test1, .-test1
.align 2
.globl test2
.type test2, @function
test2:
stwu 1,-24(1)
mflr 0
stw 31,20(1)
stw 0,28(1)
mr 31,1
stw 3,8(31)
lwz 3,8(31)
bl test <== does not have
lwz 11,0(1)
lwz 0,4(11)
mtlr 0
lwz 31,-4(11)
mr 1,11
blr
.size test2, .-test2
.ident "GCC: (GNU) 3.4.3"
--
Summary: CALL_V4_CLEAR_FP_ARGS flag not properly set
Product: gcc
Version: 3.4.3
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tong_ho at yahoo dot com
CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: powerpc-eabi-gcc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23070