diff options
Diffstat (limited to 'clang-tools-extra/test/cpp11-migrate/UseNullptr/basic.cpp')
-rw-r--r-- | clang-tools-extra/test/cpp11-migrate/UseNullptr/basic.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/clang-tools-extra/test/cpp11-migrate/UseNullptr/basic.cpp b/clang-tools-extra/test/cpp11-migrate/UseNullptr/basic.cpp index c84758e1cd2..b7c5d5e3516 100644 --- a/clang-tools-extra/test/cpp11-migrate/UseNullptr/basic.cpp +++ b/clang-tools-extra/test/cpp11-migrate/UseNullptr/basic.cpp @@ -221,6 +221,8 @@ struct Bam { void ambiguous_function(int *a) {} void ambiguous_function(float *a) {} +void const_ambiguous_function(const int *p) {} +void const_ambiguous_function(const float *p) {} void test_explicit_cast_ambiguous1() { ambiguous_function((int*)0); @@ -251,3 +253,26 @@ void test_explicit_cast_ambiguous5() { k = (int*)0; // CHECK: k = (int*)nullptr; } + +void test_const_pointers_abiguous() { + const_ambiguous_function((int*)0); + // CHECK: const_ambiguous_function((int*)nullptr); +} + +// Test where the implicit cast to null is surrounded by another implict cast +// with possible explict casts in-between. +void test_const_pointers() { + const int *const_p1 = 0; + // CHECK: const int *const_p1 = nullptr; + const int *const_p2 = NULL; + // CHECK: const int *const_p2 = nullptr; + const int *const_p3 = (int)0; + // CHECK: const int *const_p3 = nullptr; + const int *const_p4 = (int)0.0f; + // CHECK: const int *const_p4 = nullptr; + const int *const_p5 = (int*)0; + // CHECK: const int *const_p5 = (int*)nullptr; + int *t; + const int *const_p6 = static_cast<int*>(t ? t : static_cast<int*>(0)); + // CHECK: const int *const_p6 = static_cast<int*>(t ? t : static_cast<int*>(nullptr)); +} |