summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorFrancois Pichet <pichet2000@gmail.com>2010-10-18 15:01:13 +0000
committerFrancois Pichet <pichet2000@gmail.com>2010-10-18 15:01:13 +0000
commita310806ae57f873baf1d0a4de47eb122fd9d4202 (patch)
tree5427075ca0e54b0870e8072ed150b270443df22f /clang/test
parent6769922d8c5f5ae49c4d0c040eabcdf3a567a573 (diff)
downloadbcm5719-llvm-a310806ae57f873baf1d0a4de47eb122fd9d4202.tar.gz
bcm5719-llvm-a310806ae57f873baf1d0a4de47eb122fd9d4202.zip
Microsoft enum extensions. 2 things will change on -fms-extensions:
1. enum underlying type is int by default. 2. Error "enumerator value is not representable in the underlying type"is a ExtWarning llvm-svn: 116704
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Sema/MicrosoftExtensions.c12
-rw-r--r--clang/test/SemaCXX/MicrosoftExtensions.cpp11
2 files changed, 22 insertions, 1 deletions
diff --git a/clang/test/Sema/MicrosoftExtensions.c b/clang/test/Sema/MicrosoftExtensions.c
index 96c5639810b..47071a383d6 100644
--- a/clang/test/Sema/MicrosoftExtensions.c
+++ b/clang/test/Sema/MicrosoftExtensions.c
@@ -19,3 +19,15 @@ struct D {
int l;
int D[];
};
+
+
+enum ENUM1; // expected-warning {{forward references to 'enum' types are a Microsoft extension}}
+enum ENUM1 var1 = 3;
+enum ENUM1* var2 = 0;
+
+
+enum ENUM2 {
+ ENUM2_a = (enum ENUM2) 4,
+ ENUM2_b = 0x9FFFFFFF, // expected-warning {{enumerator value is not representable in the underlying type 'int'}}
+ ENUM2_c = 0x100000000 // expected-warning {{enumerator value is not representable in the underlying type 'int'}}
+};
diff --git a/clang/test/SemaCXX/MicrosoftExtensions.cpp b/clang/test/SemaCXX/MicrosoftExtensions.cpp
index 7cc1675f2e7..cfb27bcf21c 100644
--- a/clang/test/SemaCXX/MicrosoftExtensions.cpp
+++ b/clang/test/SemaCXX/MicrosoftExtensions.cpp
@@ -87,4 +87,13 @@ void m1() {
//MSVC allows forward enum declaration
enum ENUM; // expected-warning {{forward references to 'enum' types are a Microsoft extension}}
-ENUM *var;
+ENUM *var = 0;
+ENUM var2 = (ENUM)3;
+enum ENUM1* var3 = 0;// expected-warning {{forward references to 'enum' types are a Microsoft extension}}
+
+
+enum ENUM2 {
+ ENUM2_a = (enum ENUM2) 4,
+ ENUM2_b = 0x9FFFFFFF, // expected-warning {{enumerator value is not representable in the underlying type 'int'}}
+ ENUM2_c = 0x100000000 // expected-warning {{enumerator value is not representable in the underlying type 'int'}}
+};
OpenPOWER on IntegriCloud