aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2003-10-03 00:23:30 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2003-10-03 00:23:30 +0000
commit5114f0ed903dbb7bb427ee5f27299d6a6d7b63a8 (patch)
treea29492c41d187f6449d2fccca3645bfd46041637 /gcc
parent5e499a4de0ab0402e843bc9e442427d8289a8390 (diff)
downloadgcc-5114f0ed903dbb7bb427ee5f27299d6a6d7b63a8.zip
gcc-5114f0ed903dbb7bb427ee5f27299d6a6d7b63a8.tar.gz
gcc-5114f0ed903dbb7bb427ee5f27299d6a6d7b63a8.tar.bz2
re PR rtl-optimization/12180 (Inline optimization fails for variadic function)
PR optimization/12180 * tree-inline.c (inline_forbidden_p_1): Do not permit inlining of functions containing calls to PR optimization/12180 * gcc.dg/20031002-1.c: New test. From-SVN: r72057
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gcc.dg/20031002-1.c14
-rw-r--r--gcc/tree-inline.c2
4 files changed, 25 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4d974fc..e0a7661 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2003-10-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR optimization/12180
+ * tree-inline.c (inline_forbidden_p_1): Do not permit inlining of
+ functions containing calls to
+
2003-10-02 Chris Demetriou <cgd@broadcom.com>
* config/mips/mips.c (mips_emit_prefetch): Use operand 3
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5d992b1..66b71f5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2003-10-02 Mark Mitchell <mark@codesourcery.com>
+ PR optimization/12180
+ * gcc.dg/20031002-1.c: New test.
+
PR c++/12486
* g++.dg/inherit/error1.C: New test.
diff --git a/gcc/testsuite/gcc.dg/20031002-1.c b/gcc/testsuite/gcc.dg/20031002-1.c
new file mode 100644
index 0000000..fb80fbc
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20031002-1.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+void generic_sendmsg (char *fmt, ...)
+{
+ __builtin_next_arg(fmt);
+}
+
+void generic_sendstat()
+{
+ double t;
+
+ generic_sendmsg("F %3.2f", t);
+}
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 0cec45b..e2b08cd 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -922,6 +922,8 @@ inline_forbidden_p_1 (tree *nodep, int *walk_subtrees ATTRIBUTE_UNUSED,
arguments. */
case BUILT_IN_VA_START:
case BUILT_IN_STDARG_START:
+ case BUILT_IN_NEXT_ARG:
+ case BUILT_IN_VA_END:
{
inline_forbidden_reason
= N_("%Jfunction '%F' can never be inlined because it "