ilya-biryukov added subscribers: sammccall, ioeric, hokein, bkramer.
ilya-biryukov added a comment.

In https://reviews.llvm.org/D42966#1079438, @mikhail.ramalho wrote:

> The virtual file is actually registered in the SourceManager but the
>  FileEntry for it is NULL (USRGeneration.cpp:33), which forces printLoc to
>  return true (USRGeneration.cpp:38) and the USR is not generated.


I still don't get why the file is virtual. Looking at the code in 
`SourceManager`, presumed location uses `FileEntry` of passed location 
(actually, its expansion location, but that shouldn't matter) and then 
translates line numbers according to the `#line` directives in the file.
So the question is: why is `FileEntry` null for original location, but not null 
for `PresumedLoc`?

Sorry for confusion, if any, I just want to understand to make sure we're 
looking at the right place to solve your original problem.

>> int func(int param1);
>>  int func(int param2);
>>  // param1 and param2 could both have the same USR, but different names.
>>  That might (or might not) be surprising.
> 
> I agree here, they should have the same USR.

Let's get more opinions on this, I'm not 100% certain about it myself :-)

@arphaman, @bkramer, @hokein, @ioeric, @sammccall, should parameters of 
**different declarations** for the **same function overload** have the same or 
different USRs? WDYT?


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

Reply via email to