--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O3 -fno-exceptions" } */
+
+typedef struct tree_node *tree;
+enum tree_code { RECORD_TYPE, QUAL_UNION_TYPE };
+enum tree_code_class {};
+struct tree_base {
+ tree_code code : 16;
+};
+struct tree_node {
+ tree_base base;
+};
+extern tree_code_class tree_code_type[];
+void tree_check_failed() __attribute__((__noreturn__));
+tree tree_check3(tree __t, tree_code __c1, tree_code __c3) {
+ if (__t->base.code != __c1 && __t->base.code != __c3)
+ tree_check_failed();
+ return __t;
+}
+tree add_type_duplicate_type;
+void add_type_duplicate() {
+ if (tree_code_type[add_type_duplicate_type->base.code])
+ if (add_type_duplicate_type->base.code == RECORD_TYPE)
+ for (;
+ tree_check3(add_type_duplicate_type, RECORD_TYPE, QUAL_UNION_TYPE);)
+ tree_check3(add_type_duplicate_type, RECORD_TYPE, QUAL_UNION_TYPE);
+}
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-O3" } */
-
-typedef struct tree_node *tree;
-enum tree_code { RECORD_TYPE, QUAL_UNION_TYPE };
-enum tree_code_class {};
-struct tree_base {
- tree_code code : 16;
-};
-struct tree_node {
- tree_base base;
-};
-extern tree_code_class tree_code_type[];
-void tree_check_failed() __attribute__((__noreturn__));
-tree tree_check3(tree __t, tree_code __c1, tree_code __c3) {
- if (__t->base.code != __c1 && __t->base.code != __c3)
- tree_check_failed();
- return __t;
-}
-tree add_type_duplicate_type;
-void add_type_duplicate() {
- if (tree_code_type[add_type_duplicate_type->base.code])
- if (add_type_duplicate_type->base.code == RECORD_TYPE)
- for (;
- tree_check3(add_type_duplicate_type, RECORD_TYPE, QUAL_UNION_TYPE);)
- tree_check3(add_type_duplicate_type, RECORD_TYPE, QUAL_UNION_TYPE);
-}