aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20040727-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20040727-1.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20040727-1.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20040727-1.c b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20040727-1.c
new file mode 100644
index 000000000..a46abec1e
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20040727-1.c
@@ -0,0 +1,32 @@
+/* Extracted from boehm-gc/os_dep.c on Darwin. It caused an ICE when
+ trying to merge alias information from two pointers that had
+ different type memory tags. */
+typedef int thread_state_flavor_t;
+typedef int exception_behavior_t;
+typedef unsigned int exception_mask_t;
+typedef unsigned int exception_handler_t;
+typedef unsigned int mach_msg_type_number_t;
+static struct {
+ mach_msg_type_number_t count;
+ exception_mask_t masks[16];
+ exception_handler_t ports[16];
+ thread_state_flavor_t flavors[16];
+} GC_old_exc_ports;
+
+typedef exception_handler_t *exception_handler_array_t;
+typedef thread_state_flavor_t *exception_flavor_array_t;
+
+
+int task_get_exception_ports
+(
+ mach_msg_type_number_t *masksCnt,
+ exception_handler_array_t old_handlers,
+ exception_flavor_array_t old_flavors
+);
+
+void GC_dirty_init()
+{
+ task_get_exception_ports(GC_old_exc_ports.masks,
+ GC_old_exc_ports.ports,
+ GC_old_exc_ports.flavors);
+}