aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2007-05-08 08:48:15 +0200
committerUros Bizjak <uros@gcc.gnu.org>2007-05-08 08:48:15 +0200
commitac97d816a6cbc700f4808223e21d6bdb50e4dd66 (patch)
tree5881c9067dbb45fa22999e8262e913a2198ee7e2 /gcc
parent9b4fc32c635972f5d8c365ed6b17f120a1cf70b7 (diff)
downloadgcc-ac97d816a6cbc700f4808223e21d6bdb50e4dd66.zip
gcc-ac97d816a6cbc700f4808223e21d6bdb50e4dd66.tar.gz
gcc-ac97d816a6cbc700f4808223e21d6bdb50e4dd66.tar.bz2
re PR target/31854 (internal compiler error: in cgraph_local_info, at cgraph.c:618)
PR target/31854 * config/i386/i386.c (ix86_function_regparm): Process local functions only when TREE_CODE (decl) equals FUNCTION_DECL. From-SVN: r124538
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.c3
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/gcc.target/i386/pr31854.c10
4 files changed, 25 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 22b09d4..a537835 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-05-08 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/31854
+ * config/i386/i386.c (ix86_function_regparm): Process local
+ functions only when TREE_CODE (decl) equals FUNCTION_DECL.
+
2007-05-07 Mike Stump <mrs@apple.com>
* doc/invoke.texi (Warning Options): Document that -Wempty-body
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index a393654..7e2accf 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -2792,7 +2792,8 @@ ix86_function_regparm (tree type, tree decl)
return 2;
/* Use register calling convention for local functions when possible. */
- if (decl && flag_unit_at_a_time && !profile_flag)
+ if (decl && TREE_CODE (decl) == FUNCTION_DECL
+ && flag_unit_at_a_time && !profile_flag)
{
struct cgraph_local_info *i = cgraph_local_info (decl);
if (i && i->local)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 894e2ca..6ba856d9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-08 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/31854
+ * gcc.target/i386/pr31854.c: New test.
+
2007-05-07 Janis Johnson <janis187@us.ibm.com>
* gcc.dg/pch/pch.exp: XFAIL largefile on Solaris 10 x86.
@@ -12,8 +17,8 @@
2007-05-07 Uros Bizjak <ubizjak@gmail.com>
- * gcc.dg/dfp/convert-bfp-fold.c: Remove extra assignment to
- sf variable. Rearrange conversions from binary float to decimal float.
+ * gcc.dg/dfp/convert-bfp-fold.c: Remove extra assignment to 'sf'
+ variable. Rearrange conversions from binary float to decimal float.
2007-05-07 Mark Mitchell <mark@codesourcery.com>
diff --git a/gcc/testsuite/gcc.target/i386/pr31854.c b/gcc/testsuite/gcc.target/i386/pr31854.c
new file mode 100644
index 0000000..d5dca57
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr31854.c
@@ -0,0 +1,10 @@
+/* { dg-do compile { target dfp } } */
+/* { dg-options "-O -std=gnu99" } */
+
+_Decimal128 d128;
+long double tf;
+
+void foo (void)
+{
+ d128 = tf;
+}