diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Sema/MicrosoftExtensions.c | 3 | ||||
-rw-r--r-- | clang/test/SemaCXX/MicrosoftExtensions.cpp | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/clang/test/Sema/MicrosoftExtensions.c b/clang/test/Sema/MicrosoftExtensions.c index a66d9a9eb0f..5215e72b1ba 100644 --- a/clang/test/Sema/MicrosoftExtensions.c +++ b/clang/test/Sema/MicrosoftExtensions.c @@ -76,6 +76,9 @@ void pointer_to_integral_type_conv(char* ptr) { short sh = (short)ptr; ch = (char)ptr; sh = (short)ptr; + + // This is valid ISO C. + _Bool b = (_Bool)ptr; } diff --git a/clang/test/SemaCXX/MicrosoftExtensions.cpp b/clang/test/SemaCXX/MicrosoftExtensions.cpp index 93a6d302ef3..c0e7a5ad4c7 100644 --- a/clang/test/SemaCXX/MicrosoftExtensions.cpp +++ b/clang/test/SemaCXX/MicrosoftExtensions.cpp @@ -167,8 +167,14 @@ void pointer_to_integral_type_conv(char* ptr) { short sh = (short)ptr; ch = (char)ptr; sh = (short)ptr; -} + // These are valid C++. + bool b = (bool)ptr; + b = static_cast<bool>(ptr); + + // This is bad. + b = reinterpret_cast<bool>(ptr); // expected-error {{cast from pointer to smaller type 'bool' loses information}} +} namespace friend_as_a_forward_decl { |