From: Fangrui Song Date: Tue, 2 Jun 2020 18:25:03 +0000 (-0700) Subject: [Sema] Use isAlwaysUninit for -Wuninitialized-const-reference after D79895 X-Git-Tag: llvmorg-12-init~4388 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7096e04a6831d4668c39b388ccd166f84de69191;p=platform%2Fupstream%2Fllvm.git [Sema] Use isAlwaysUninit for -Wuninitialized-const-reference after D79895 --- diff --git a/clang/lib/Analysis/UninitializedValues.cpp b/clang/lib/Analysis/UninitializedValues.cpp index facda6e..3d44d1c 100644 --- a/clang/lib/Analysis/UninitializedValues.cpp +++ b/clang/lib/Analysis/UninitializedValues.cpp @@ -673,7 +673,7 @@ void TransferFunctions::reportUse(const Expr *ex, const VarDecl *vd) { void TransferFunctions::reportConstRefUse(const Expr *ex, const VarDecl *vd) { Value v = vals[vd]; - if (isUninitialized(v)) + if (isAlwaysUninit(v)) handler.handleConstRefUseOfUninitVariable(vd, getUninitUse(ex, vd, v)); } diff --git a/clang/test/SemaCXX/warn-uninitialized-const-reference.cpp b/clang/test/SemaCXX/warn-uninitialized-const-reference.cpp index de0c124..292793b 100644 --- a/clang/test/SemaCXX/warn-uninitialized-const-reference.cpp +++ b/clang/test/SemaCXX/warn-uninitialized-const-reference.cpp @@ -14,7 +14,7 @@ int const_ref_use(const int &i); A const_use_A(const A a); int const_use(const int i); -void f() { +void f(int a) { int i; const_ref_use(i); // expected-warning {{variable 'i' is uninitialized when passed as a const reference argument here}} int j = j + const_ref_use(j); // expected-warning {{variable 'j' is uninitialized when used within its own initialization}} expected-warning {{variable 'j' is uninitialized when passed as a const reference argument here}} @@ -28,4 +28,9 @@ void f() { A a5; const_ref_use_A(a5); + + int m; + if (a < 42) + m = 1; + const_ref_use(m); }