diff options
author | Francois Pichet <pichet2000@gmail.com> | 2010-10-18 15:01:13 +0000 |
---|---|---|
committer | Francois Pichet <pichet2000@gmail.com> | 2010-10-18 15:01:13 +0000 |
commit | a310806ae57f873baf1d0a4de47eb122fd9d4202 (patch) | |
tree | 5427075ca0e54b0870e8072ed150b270443df22f /clang/test | |
parent | 6769922d8c5f5ae49c4d0c040eabcdf3a567a573 (diff) | |
download | bcm5719-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.c | 12 | ||||
-rw-r--r-- | clang/test/SemaCXX/MicrosoftExtensions.cpp | 11 |
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'}} +}; |