]> granicus.if.org Git - clang/commitdiff
When Driver::generateCompilationDiagnostics is filtering the list of
authorPaul Robinson <paul_robinson@playstation.sony.com>
Mon, 28 Apr 2014 22:24:44 +0000 (22:24 +0000)
committerPaul Robinson <paul_robinson@playstation.sony.com>
Mon, 28 Apr 2014 22:24:44 +0000 (22:24 +0000)
inputs to the preprocessor, check for invalid types first because not
all linker inputs have an option value to retrieve.

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

lib/Driver/Driver.cpp
test/Driver/crash-report.c

index be83713b605c04cb93acb6f5870bc4d190b01861..a238e37c1db844d83e936c437a3362ca442f83d9 100644 (file)
@@ -447,13 +447,14 @@ void Driver::generateCompilationDiagnostics(Compilation &C,
     bool IgnoreInput = false;
 
     // Ignore input from stdin or any inputs that cannot be preprocessed.
-    if (!strcmp(it->second->getValue(), "-")) {
+    // Check type first as not all linker inputs have a value.
+   if (types::getPreprocessedType(it->first) == types::TY_INVALID) {
+      IgnoreInput = true;
+    } else if (!strcmp(it->second->getValue(), "-")) {
       Diag(clang::diag::note_drv_command_failed_diag_msg)
         << "Error generating preprocessed source(s) - ignoring input from stdin"
         ".";
       IgnoreInput = true;
-    } else if (types::getPreprocessedType(it->first) == types::TY_INVALID) {
-      IgnoreInput = true;
     }
 
     if (IgnoreInput) {
index acc1abdc4e3c4fdcc22a5a08c904b7fdc8c0e07b..59ce8f76a3ec2bc4fd995464d627bfaf90d39ff1 100644 (file)
@@ -14,7 +14,7 @@
 // because of the glob (*.c, *.sh)
 // REQUIRES: shell
 
-// RUN: not env FORCE_CLANG_DIAGNOSTICS_CRASH=1 %clang -fsyntax-only -x c /dev/null 2>&1 | FileCheck %s
+// RUN: not env FORCE_CLANG_DIAGNOSTICS_CRASH=1 %clang -fsyntax-only -x c /dev/null -lstdc++ 2>&1 | FileCheck %s
 
 // FIXME: Investigating. "fatal error: file 'nul' modified since it was first processed"
 // XFAIL: mingw32