Fix some issues handling sub-token locations that come from macro expansions.
We now emit:
t.m:6:15: warning: field width should have type 'int', but argument has type 'unsigned int'
printf(STR, (unsigned) 1, 1);
^ ~~~~~~~~~~~~
t.m:3:18: note: instantiated from:
#define STR "abc%*ddef"
^
which has the correct location in the string literal in the note line.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64936 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Lex/Preprocessor.cpp b/lib/Lex/Preprocessor.cpp
index f50004c..789d931 100644
--- a/lib/Lex/Preprocessor.cpp
+++ b/lib/Lex/Preprocessor.cpp
@@ -296,7 +296,7 @@
// the instantiation point (the name). We could point to the source
// character, but without also pointing to instantiation info, this is
// confusing.
- if (CharNo == 0 || TokStart.isMacroID()) return TokStart;
+ if (CharNo == 0) return TokStart;
// Figure out how many physical characters away the specified instantiation
// character is. This needs to take into consideration newlines and