aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/objc/execute/enumeration-2.m
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/objc/execute/enumeration-2.m')
-rw-r--r--gcc-4.9/gcc/testsuite/objc/execute/enumeration-2.m52
1 files changed, 52 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/objc/execute/enumeration-2.m b/gcc-4.9/gcc/testsuite/objc/execute/enumeration-2.m
new file mode 100644
index 000000000..3ce0504ff
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/objc/execute/enumeration-2.m
@@ -0,0 +1,52 @@
+/* Contributed by Nicola Pero - Wed Dec 5 17:12:40 GMT 2001 */
+#include <stdlib.h>
+#import "../../objc-obj-c++-shared/TestsuiteObject.m"
+
+typedef enum { black, white } color;
+
+typedef struct
+{
+ color a:2;
+ color b:2;
+} color_couple;
+
+@interface TestClass: TestsuiteObject
+{
+ color_couple *c;
+}
+- (color_couple *)colorCouple;
+- (void)setColorCouple: (color_couple *)a;
+@end
+
+@implementation TestClass
+- (color_couple *)colorCouple
+{
+ return c;
+}
+- (void)setColorCouple: (color_couple *)a
+{
+ c = a;
+}
+@end
+
+
+int main (void)
+{
+ color_couple cc;
+ TestClass *c;
+
+ c = [TestClass new];
+
+ cc.a = black;
+ cc.b = white;
+
+ [c setColorCouple: &cc];
+ if ([c colorCouple] != &cc)
+ {
+ abort ();
+ }
+
+
+ return 0;
+}
+