[cfe-commits] r85527 - in /cfe/trunk: include/clang/Basic/DiagnosticFrontendKinds.td tools/clang-cc/clang-cc.cpp

Daniel Dunbar daniel at zuster.org
Thu Oct 29 14:05:19 PDT 2009


Author: ddunbar
Date: Thu Oct 29 16:05:18 2009
New Revision: 85527

URL: http://llvm.org/viewvc/llvm-project?rev=85527&view=rev
Log:
Move some clang-cc errors to use diagnostics, and simplify.

Modified:
    cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td
    cfe/trunk/tools/clang-cc/clang-cc.cpp

Modified: cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td?rev=85527&r1=85526&r2=85527&view=diff

==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td Thu Oct 29 16:05:18 2009
@@ -12,6 +12,7 @@
 def err_fe_unknown_triple : Error<
   "unknown target triple '%0', please use -triple or -arch">;
 def err_fe_unknown_target_abi : Error<"unknown target ABI '%0'">;
+def err_fe_error_opening : Error<"error opening '%0': %1">;
 def err_fe_error_reading : Error<"error reading '%0'">;
 def err_fe_error_reading_stdin : Error<"error reading stdin">;
 def err_fe_error_backend : Error<"error in backend: %0">, DefaultFatal;
@@ -19,6 +20,8 @@
 def err_fe_invalid_ast_action : Error<"invalid action for AST input">, DefaultFatal;
 def err_fe_invalid_code_complete_file 
   : Error<"cannot locate code-completion file %0">, DefaultFatal;
+def err_fe_dependency_file_requires_MT : Error<
+    "-dependency-file requires at least one -MT option">;
 
 def note_fixit_applied : Note<"FIX-IT applied suggested code changes">;
 def note_fixit_in_macro : Note<

Modified: cfe/trunk/tools/clang-cc/clang-cc.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-cc/clang-cc.cpp?rev=85527&r1=85526&r2=85527&view=diff

==============================================================================
--- cfe/trunk/tools/clang-cc/clang-cc.cpp (original)
+++ cfe/trunk/tools/clang-cc/clang-cc.cpp Thu Oct 29 16:05:18 2009
@@ -106,8 +106,6 @@
 /// anything.
 llvm::Timer *ClangFrontendTimer = 0;
 
-static bool HadErrors = false;
-
 static llvm::cl::opt<bool>
 Verbose("v", llvm::cl::desc("Enable verbose output"));
 static llvm::cl::opt<bool>
@@ -1853,8 +1851,8 @@
                                         Features, Context));
 
     if (!Consumer.get()) {
-      fprintf(stderr, "Unexpected program action!\n");
-      HadErrors = true;
+      PP.getDiagnostics().Report(FullSourceLoc(),
+                                 diag::err_fe_invalid_ast_action);
       return;
     }
 
@@ -2165,11 +2163,9 @@
   // handles.  Also, we don't want to try to erase an open file.
   OS.reset();
 
-  if ((HadErrors || (PP.getDiagnostics().getNumErrors() != 0)) &&
-      !OutPath.isEmpty()) {
-    // If we had errors, try to erase the output file.
+  // If we had errors, try to erase the output file.
+  if (PP.getDiagnostics().getNumErrors() && !OutPath.isEmpty())
     OutPath.eraseFromDisk();
-  }
 }
 
 /// ProcessInputFile - Process a single AST input file with the specified state.
@@ -2224,11 +2220,9 @@
   // handles.  Also, we don't want to try to erase an open file.
   OS.reset();
 
-  if ((HadErrors || (PP.getDiagnostics().getNumErrors() != 0)) &&
-      !OutPath.isEmpty()) {
-    // If we had errors, try to erase the output file.
+  // If we had errors, try to erase the output file.
+  if (PP.getDiagnostics().getNumErrors() && !OutPath.isEmpty())
     OutPath.eraseFromDisk();
-  }
 }
 
 static llvm::cl::list<std::string>
@@ -2290,9 +2284,9 @@
     if (MessageLength.getNumOccurrences() == 0)
       MessageLength.setValue(llvm::sys::Process::StandardErrColumns());
 
-    if (!NoColorDiagnostic) {
-      NoColorDiagnostic.setValue(!llvm::sys::Process::StandardErrHasColors());
-    }
+    // Disable color diagnostics if not supported on stderr.
+    if (!NoColorDiagnostic && !llvm::sys::Process::StandardErrHasColors())
+      NoColorDiagnostic.setValue(true);
 
     DiagClient.reset(new TextDiagnosticPrinter(llvm::errs(),
                                                !NoShowColumn,
@@ -2397,26 +2391,21 @@
                                         *SourceMgr.get(), HeaderInfo);
 
     llvm::OwningPtr<Preprocessor> PP(PPFactory.CreatePreprocessor());
-
     if (!PP)
       continue;
 
-    // Handle generating dependencies, if requested
+    // Handle generating dependencies, if requested.
     if (!DependencyFile.empty()) {
-      llvm::raw_ostream *DependencyOS;
       if (DependencyTargets.empty()) {
-        // FIXME: Use a proper diagnostic
-        llvm::errs() << "-dependency-file requires at least one -MT option\n";
-        HadErrors = true;
+        Diags.Report(FullSourceLoc(), diag::err_fe_dependency_file_requires_MT);
         continue;
       }
       std::string ErrStr;
-      DependencyOS =
+      llvm::raw_ostream *DependencyOS =
           new llvm::raw_fd_ostream(DependencyFile.c_str(), ErrStr);
       if (!ErrStr.empty()) {
-        // FIXME: Use a proper diagnostic
-        llvm::errs() << "unable to open dependency file: " + ErrStr;
-        HadErrors = true;
+        Diags.Report(FullSourceLoc(), diag::err_fe_error_opening)
+          << DependencyFile << ErrStr;
         continue;
       }
 
@@ -2465,5 +2454,5 @@
   // -time-passes usable.
   llvm::llvm_shutdown();
 
-  return HadErrors || (Diags.getNumErrors() != 0);
+  return (Diags.getNumErrors() != 0);
 }





More information about the cfe-commits mailing list