summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/test/cpp11-migrate/UseNullptr/nullptr_t.cpp
diff options
context:
space:
mode:
authorEdwin Vane <edwin.vane@intel.com>2013-03-15 18:10:07 +0000
committerEdwin Vane <edwin.vane@intel.com>2013-03-15 18:10:07 +0000
commit52c326ec78bb708cff384600aa695911e6aa8562 (patch)
treebd0b649d94fc82ba58f54332af22cc29deb322f7 /clang-tools-extra/test/cpp11-migrate/UseNullptr/nullptr_t.cpp
parent2f5457141ad212c9821b93fdaf6a377bffcffca7 (diff)
downloadbcm5719-llvm-52c326ec78bb708cff384600aa695911e6aa8562.tar.gz
bcm5719-llvm-52c326ec78bb708cff384600aa695911e6aa8562.zip
Prevent nullptr_t-typed exprs from being replaced
The Use-Nullptr transform was replacing nullptr_t-typed expressions because in the AST such expressions have an implicit NullToPointer cast around them. Now the transform ignores these expressions. Fixes PR15414. llvm-svn: 177168
Diffstat (limited to 'clang-tools-extra/test/cpp11-migrate/UseNullptr/nullptr_t.cpp')
-rw-r--r--clang-tools-extra/test/cpp11-migrate/UseNullptr/nullptr_t.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/clang-tools-extra/test/cpp11-migrate/UseNullptr/nullptr_t.cpp b/clang-tools-extra/test/cpp11-migrate/UseNullptr/nullptr_t.cpp
index 84ca100482e..a973fb39817 100644
--- a/clang-tools-extra/test/cpp11-migrate/UseNullptr/nullptr_t.cpp
+++ b/clang-tools-extra/test/cpp11-migrate/UseNullptr/nullptr_t.cpp
@@ -1,17 +1,29 @@
// RUN: grep -Ev "// *[A-Z-]+:" %s > %t.cpp
// RUN: cpp11-migrate -final-syntax-check -use-nullptr %t.cpp -- --std=c++11 -I %S
// RUN: FileCheck -input-file=%t.cpp %s
-// XFAIL: *
-namespace std { typedef decltype(nullptr) nullptr_t; }
+namespace std {
+
+typedef decltype(nullptr) nullptr_t;
+
+} // namespace std
// Just to make sure make_null() could have side effects.
void external();
-std::nullptr_t make_null() { external(); return nullptr; }
+std::nullptr_t make_null() {
+ external();
+ return nullptr;
+}
+
+void func() {
+ void *CallTest = make_null();
+ // CHECK: void *CallTest = make_null();
+
+ int var = 1;
+ void *CommaTest = (var+=2, make_null());
+ // CHECK: void *CommaTest = (var+=2, make_null());
-void *call_make_null()
-{
- return make_null();
- // CHECK: return make_null();
+ int *CastTest = static_cast<int*>(make_null());
+ // CHECK: int *CastTest = static_cast<int*>(make_null());
}
OpenPOWER on IntegriCloud