]> granicus.if.org Git - clang/commitdiff
Revert r172878, "Reword warning about using a *static* variable within its own initia...
authorNAKAMURA Takumi <geek4civic@gmail.com>
Sat, 19 Jan 2013 01:47:46 +0000 (01:47 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Sat, 19 Jan 2013 01:47:46 +0000 (01:47 +0000)
It broke, at least, linux, msvc and mingw bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172879 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticGroups.td
include/clang/Basic/DiagnosticSemaKinds.td
lib/Sema/SemaDecl.cpp

index 8a2d5965869021c4b522eec15ebcfc2003643013..24c4ef3b40e3df88452a90acbfc8949f5e55d680 100644 (file)
@@ -259,9 +259,7 @@ def UndefinedReinterpretCast : DiagGroup<"undefined-reinterpret-cast">;
 def Unicode  : DiagGroup<"unicode">;
 def UninitializedMaybe : DiagGroup<"conditional-uninitialized">;
 def UninitializedSometimes : DiagGroup<"sometimes-uninitialized">;
-def UninitializedStaticSelfInit : DiagGroup<"static-self-init">;
-def Uninitialized  : DiagGroup<"uninitialized", [UninitializedSometimes,
-                                                 UninitializedStaticSelfInit]>;
+def Uninitialized  : DiagGroup<"uninitialized", [UninitializedSometimes]>;
 def UnknownPragmas : DiagGroup<"unknown-pragmas">;
 def UnknownWarningOption : DiagGroup<"unknown-warning-option">;
 def NSobjectAttribute : DiagGroup<"NSObject-attribute">;
index c3f034a53a4fb35ed8816bce5f7e4b5e127cc0d6..c23d9eee4820b913a63d573c6c2e265a2daed4fc 100644 (file)
@@ -1292,9 +1292,6 @@ def warn_field_is_uninit : Warning<"field %0 is uninitialized when used here">,
 def warn_reference_field_is_uninit : Warning<
   "reference %0 is not yet bound to a value when used here">,
   InGroup<Uninitialized>;
-def warn_static_self_reference_in_init : Warning<
-  "static variable %0 is suspiciously used within its own initialization">,
-  InGroup<UninitializedStaticSelfInit>;
 def warn_uninit_self_reference_in_init : Warning<
   "variable %0 is uninitialized when used within its own initialization">,
   InGroup<Uninitialized>;
index dbdbc3d6a2c317322e900f3b14bbb7eb24c12990..9cf5e73665a435d72f70e91a2a595655cd5a0887 100644 (file)
@@ -6683,17 +6683,11 @@ namespace {
     void VisitObjCMessageExpr(ObjCMessageExpr *E) { return; }
 
     void HandleDeclRefExpr(DeclRefExpr *DRE) {
-      Decl* ReferenceDecl = DRE->getDecl();
+      Decl* ReferenceDecl = DRE->getDecl(); 
       if (OrigDecl != ReferenceDecl) return;
-      unsigned diag;
-      if (isReferenceType) {
-        diag = diag::warn_uninit_self_reference_in_reference_init;
-      } else if (cast<VarDecl>(OrigDecl)->isStaticLocal()) {
-        diag = diag::warn_static_self_reference_in_init;
-      } else {
-        diag = diag::warn_uninit_self_reference_in_init;
-      }
-
+      unsigned diag = isReferenceType
+          ? diag::warn_uninit_self_reference_in_reference_init
+          : diag::warn_uninit_self_reference_in_init;
       S.DiagRuntimeBehavior(DRE->getLocStart(), DRE,
                             S.PDiag(diag)
                               << DRE->getNameInfo().getName()