re PR target/10467 ([arm] [3.3/3.4 regression] ICE in pre_insert_copy_insn,)
authorRoger Sayle <roger@eyesopen.com>
Sat, 8 Nov 2003 14:43:30 +0000 (14:43 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sat, 8 Nov 2003 14:43:30 +0000 (14:43 +0000)
PR optimization/10467
* gcc.dg/20031108-1.c: New test case.

From-SVN: r73362

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/20031108-1.c [new file with mode: 0644]

index c19b30ad54a7fc6dbbc093da8c2f4122043927eb..edc3de9ce85187395ff45613b5fc184865148aa6 100644 (file)
@@ -1,3 +1,8 @@
+2003-11-08  Roger Sayle  <roger@eyesopen.com>
+
+       PR optimization/10467
+       * gcc.dg/20031108-1.c: New test case.
+
 2003-11-07  Geoffrey Keating  <geoffk@apple.com>
 
        * gcc.dg/pch/warn-1.c: Allow for more helpful error message.
diff --git a/gcc/testsuite/gcc.dg/20031108-1.c b/gcc/testsuite/gcc.dg/20031108-1.c
new file mode 100644 (file)
index 0000000..00bf11c
--- /dev/null
@@ -0,0 +1,35 @@
+/* PR optimization/10467  */
+/* { dg-do compile { target arm*-*-* xscale*-*-* strongarm*-*-* } } */
+/* { dg-options "-O2 -mthumb" } */
+
+typedef enum {Ident_1} Enumeration;
+
+typedef struct record
+{
+    struct record *Ptr_Comp;
+    Enumeration Discr;
+    union {
+       struct {
+           Enumeration Enum_Comp;
+           int Int_Comp;
+           char Str_Comp [31];
+        } var_1;
+    } variant;
+} *Rec_Pointer;
+
+Rec_Pointer Ptr_Glob;
+
+Proc_1 (Ptr_Val_Par)
+    Rec_Pointer Ptr_Val_Par;
+{
+    Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp;
+
+    *Ptr_Val_Par->Ptr_Comp = *Ptr_Glob;
+
+    if (Next_Record->Discr == Ident_1)
+    {
+       Proc_7 (Next_Record->variant.var_1.Int_Comp, 10,
+               &Next_Record->variant.var_1.Int_Comp);
+    }
+}
+