Explorar o código

Add call stack to unused/uninitialized variable warnings

In commit v2.8.4~32^2~14 (Use cmake::IssueMessage for warnings,
2010-12-07) these warnings became formatted.  It is more informative to
give the full call stack with such warnings.  Also it is easier to
implement warnings with a full call stack because we do not have to
construct a custom backtrace with only the top.
Brad King %!s(int64=9) %!d(string=hai) anos
pai
achega
2faa8b3620
Modificáronse 2 ficheiros con 4 adicións e 25 borrados
  1. 1 8
      Source/cmCommandArgumentParserHelper.cxx
  2. 3 17
      Source/cmMakefile.cxx

+ 1 - 8
Source/cmCommandArgumentParserHelper.cxx

@@ -140,15 +140,8 @@ char* cmCommandArgumentParserHelper::ExpandVariable(const char* var)
                                      this->Makefile->GetHomeOutputDirectory()))
         {
         std::ostringstream msg;
-        cmListFileContext lfc;
-        cmOutputConverter converter(this->Makefile->GetStateSnapshot());
-        lfc.FilePath = converter.Convert(this->FileName,
-                                         cmOutputConverter::HOME);
-
-        lfc.Line = this->FileLine;
         msg << "uninitialized variable \'" << var << "\'";
-        this->Makefile->GetCMakeInstance()->IssueMessage(cmake::AUTHOR_WARNING,
-                                                        msg.str(), lfc);
+        this->Makefile->IssueMessage(cmake::AUTHOR_WARNING, msg.str());
         }
       }
     return 0;

+ 3 - 17
Source/cmMakefile.cxx

@@ -1961,21 +1961,15 @@ void cmMakefile::LogUnused(const char* reason,
   if (this->WarnUnused)
     {
     std::string path;
-    cmListFileContext lfc;
     if (!this->ExecutionStatusStack.empty())
       {
-      lfc = this->GetExecutionContext();
-      path = lfc.FilePath;
+      path = this->GetExecutionContext().FilePath;
       }
     else
       {
       path = this->GetCurrentSourceDirectory();
       path += "/CMakeLists.txt";
-      lfc.FilePath = path;
-      lfc.Line = 0;
       }
-    cmOutputConverter converter(this->StateSnapshot);
-    lfc.FilePath = converter.Convert(lfc.FilePath, cmOutputConverter::HOME);
 
     if (this->CheckSystemVars ||
         cmSystemTools::IsSubDirectory(path,
@@ -1987,9 +1981,7 @@ void cmMakefile::LogUnused(const char* reason,
       {
       std::ostringstream msg;
       msg << "unused variable (" << reason << ") \'" << name << "\'";
-      this->GetCMakeInstance()->IssueMessage(cmake::AUTHOR_WARNING,
-                                             msg.str(),
-                                             lfc);
+      this->IssueMessage(cmake::AUTHOR_WARNING, msg.str());
       }
     }
 }
@@ -2919,14 +2911,8 @@ cmake::MessageType cmMakefile::ExpandVariablesInStringNew(
                                              this->GetHomeOutputDirectory()))
                 {
                 std::ostringstream msg;
-                cmListFileContext lfc;
-                cmOutputConverter converter(this->StateSnapshot);
-                lfc.FilePath =
-                    converter.Convert(filename, cmOutputConverter::HOME);
-                lfc.Line = line;
                 msg << "uninitialized variable \'" << lookup << "\'";
-                this->GetCMakeInstance()->IssueMessage(cmake::AUTHOR_WARNING,
-                                                       msg.str(), lfc);
+                this->IssueMessage(cmake::AUTHOR_WARNING, msg.str());
                 }
               }
             }