zixuw added inline comments.

================
Comment at: clang/lib/ExtractAPI/ExtractAPIConsumer.cpp:134
+        if (!SpelledFilename.empty())
+          return SpelledFilename.str();
+
----------------
One problem I can see in this right now is that there might be multiple 
headermaps that together construct a chain of mapping, for example
```
// A.hmap
Header.h -> Product/Header.h

// B.hmap
Product/Header.h -> /Absolute/path/to/Header.h
```
Then this iteration would conclude on using `Product/Header.h` and missed the 
first mapping (if the command line goes `clang -extract-api -I A.hmap -I B.hmap 
...`).

It's also possible that a headermap and a search path together resolve the 
header. For example:
```
//A.hmap
Header.h -> Product/Header.h

// Invocation:
clang -extract-api /Some/Path/to/Product/Header.h -I A.hmap -I /Some/path/to/
```

I think we need to keep records and iterate backwards on the search paths again 
to get the full reverse lookup


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D123831/new/

https://reviews.llvm.org/D123831

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to