diff --git a/clang/lib/Analysis/UninitializedValues.cpp b/clang/lib/Analysis/UninitializedValues.cpp index 0175d4a444d4d..f6b1c67ab20c3 100644 --- a/clang/lib/Analysis/UninitializedValues.cpp +++ b/clang/lib/Analysis/UninitializedValues.cpp @@ -446,8 +446,6 @@ void ClassifyRefs::VisitCallExpr(CallExpr *CE) { const auto *UO = dyn_cast(Ex); if (UO && UO->getOpcode() == UO_AddrOf) classify(UO->getSubExpr(), isTrivialBody ? Ignore : ConstPtrUse); - else - classify(Ex, Ignore); } } } diff --git a/clang/test/SemaCXX/uninitialized.cpp b/clang/test/SemaCXX/uninitialized.cpp index 251e888f73973..cc368c22e0776 100644 --- a/clang/test/SemaCXX/uninitialized.cpp +++ b/clang/test/SemaCXX/uninitialized.cpp @@ -185,6 +185,10 @@ void test_const_ptr() { const int *ptr2; foo(ptr); // expected-warning {{variable 'ptr' is uninitialized when used here}} foobar(&ptr2); + int *ptr3; // expected-note {{initialize the variable 'ptr3' to silence this warning}} + const int *ptr4; // expected-note {{initialize the variable 'ptr4' to silence this warning}} + bar(ptr3); // expected-warning {{variable 'ptr3' is uninitialized when used here}} + bar(ptr4); // expected-warning {{variable 'ptr4' is uninitialized when used here}} } }