Include full filename range for missing includes
authorErik Verbruggen <erikjv@me.com>
Tue, 25 Oct 2016 10:13:10 +0000 (10:13 +0000)
committerErik Verbruggen <erikjv@me.com>
Tue, 25 Oct 2016 10:13:10 +0000 (10:13 +0000)
For the purpose of highlighting in an IDE.

llvm-svn: 285057

clang/lib/Lex/PPDirectives.cpp
clang/test/Preprocessor/missing-include-range-check.h [new file with mode: 0644]

index 22d6cc9..3bfbf16 100644 (file)
@@ -1847,7 +1847,8 @@ void Preprocessor::HandleIncludeDirective(SourceLocation HashLoc,
 
       // If the file is still not found, just go with the vanilla diagnostic
       if (!File)
-        Diag(FilenameTok, diag::err_pp_file_not_found) << Filename;
+        Diag(FilenameTok, diag::err_pp_file_not_found) << Filename
+                                                       << FilenameRange;
     }
   }
 
diff --git a/clang/test/Preprocessor/missing-include-range-check.h b/clang/test/Preprocessor/missing-include-range-check.h
new file mode 100644 (file)
index 0000000..6b3f7d3
--- /dev/null
@@ -0,0 +1,8 @@
+// RUN: env CINDEXTEST_KEEP_GOING=1 c-index-test -test-load-source all %s > /dev/null 2> %t.err
+// RUN: FileCheck < %t.err -check-prefix=CHECK-RANGE %s
+
+#include <foobar.h>
+#include "moozegnarf.h"
+
+// CHECK-RANGE: rewrite-includes-missing.c:4:10:{4:10-4:19}: fatal error: 'foobar.h' file not found
+// CHECK-RANGE: rewrite-includes-missing.c:5:10:{5:10-5:24}: fatal error: 'moozegnarf.h' file not found