mikhail.ramalho added a comment. Hi,
> I would say "yes". Let's not rely on linemarkers, unless we can explain > why that's a good idea. Sounds reasonable to me, specially considering cases like rename and find-declaration. > Where do virtual files come from in the first place? From the linemarker: https://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html For instance: $ cat foo.c int f(int a); 1 "file1.c" 1 ============= int g(int b); clang generates: | -FunctionDecl 0x6866ff0 <foo.c:2:1, col:12> col:5 f 'int (int)' | | `-ParmVarDecl 0x6866f30 <col:7, col:11> col:11 a 'int' | | `-FunctionDecl 0x6867138 <file1.c:1:1, col:12> col:5 g 'int (int)' `-ParmVarDecl 0x68670b0 <col:7, col:11> col:11 b 'int' Note that the location of f and g are different, despite being in the same file. The preprocessor inserts linemarkers by default: $ clang foo.c -E 1. 1 "foo.c" 2. 1 "<built-in>" 1 3. 1 "<built-in>" 3 4. 349 "<built-in>" 3 5. 1 "<command line>" 1 6. 1 "<built-in>" 2 7. 1 "foo.c" 2 int f(int a); 1 "file1.c" 1 ============= int g(int b); unless you call it with -P: $ clang foo.c -E -P int f(int a); int g(int b); > Repository: > > rC Clang > > https://reviews.llvm.org/D42966 Repository: rC Clang https://reviews.llvm.org/D42966 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits