[llvm-commits] CVS: llvm-gcc/gcc/llvm-types.c

Chris Lattner lattner at cs.uiuc.edu
Thu May 12 22:31:02 PDT 2005



Changes in directory llvm-gcc/gcc:

llvm-types.c updated: 1.21 -> 1.22
---
Log message:

Fix a bug in a recent patch that caused llvm-gcc to crash on recursive unions
sometimes.  This fixes the 126.gcc failure.


---
Diffs of the changes:  (+5 -2)

 llvm-types.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)


Index: llvm-gcc/gcc/llvm-types.c
diff -u llvm-gcc/gcc/llvm-types.c:1.21 llvm-gcc/gcc/llvm-types.c:1.22
--- llvm-gcc/gcc/llvm-types.c:1.21	Tue May 10 17:33:16 2005
+++ llvm-gcc/gcc/llvm-types.c	Fri May 13 00:30:45 2005
@@ -952,8 +952,11 @@
 
   /* Check to see that element i+1 starts at offsetof(i)+sizeof(STy[i]). */
   for (i = 0, e = Ty->NumElements; i != e-1; ++i)
-    if (Ty->x.Struct.MemberOffsets[i] + llvm_type_get_size(Ty->Elements[i]) !=
-        Ty->x.Struct.MemberOffsets[i+1])
+    if (Ty->Elements[i] == 0)
+      return 1;
+    else if (Ty->x.Struct.MemberOffsets[i] +
+                     llvm_type_get_size(Ty->Elements[i]) !=
+                Ty->x.Struct.MemberOffsets[i+1])
       return 1;
 
   /* Check for tail padding. */






More information about the llvm-commits mailing list