[llvm-commits] CVS: llvm-gcc/gcc/llvm-types.c
Chris Lattner
lattner at cs.uiuc.edu
Wed Apr 21 13:49:02 PDT 2004
Changes in directory llvm-gcc/gcc:
llvm-types.c updated: 1.2 -> 1.3
---
Log message:
Fix PR326: http://llvm.cs.uiuc.edu/PR326 : [llvmgcc] Crash on use of undeclared enum type
---
Diffs of the changes: (+11 -0)
Index: llvm-gcc/gcc/llvm-types.c
diff -u llvm-gcc/gcc/llvm-types.c:1.2 llvm-gcc/gcc/llvm-types.c:1.3
--- llvm-gcc/gcc/llvm-types.c:1.2 Wed Mar 10 13:38:33 2004
+++ llvm-gcc/gcc/llvm-types.c Wed Apr 21 13:48:53 2004
@@ -1349,6 +1349,17 @@
case BOOLEAN_TYPE: return BoolTy;
case ENUMERAL_TYPE:
+ if (TYPE_SIZE(type) == 0) {
+ const char *Name;
+ if (TREE_CODE(TYPE_NAME(type)) == IDENTIFIER_NODE)
+ Name = IDENTIFIER_POINTER(TYPE_NAME(type));
+ else
+ Name = IDENTIFIER_POINTER(DECL_NAME(TYPE_NAME(type)));
+
+ return llvm_type_create_opaque(get_type_name(Name, "enum.",
+ TYPE_CONTEXT(type)));
+ }
+ /* FALL THROUGH */
case INTEGER_TYPE:
return llvm_type_get_integer(TREE_INT_CST_LOW(TYPE_SIZE(type)),
TREE_UNSIGNED(type));
More information about the llvm-commits
mailing list