VitaNuo added inline comments.

================
Comment at: clang/include/clang/Tooling/Inclusions/StdSymbolMap.inc:100
 SYMBOL(atoll, std::, <cstdlib>)
+SYMBOL(atomic, std::, <atomic>)
+SYMBOL(atomic, std::, <memory>)
----------------
VitaNuo wrote:
> kadircet wrote:
> > hokein wrote:
> > > Conceptually, this (and other `atomic_*` symbols) doesn't feel correct:
> > > - `<atomic>` provides the generic template `template<class T> struct 
> > > atomic;`
> > > -  `<memory>` provides partial template specializations for 
> > > `std::shared_ptr` and `std::weak_ptr`  
> > > 
> > > They are variant symbols (ideally, they should be treat as the 
> > > `std::move()`). The issue here is that unlike `std::move` which has two 
> > > individual entries in the index page, we only have one entry for 
> > > `std::atomic` (extending the cppreference_parser.py script to perfectly 
> > > distinguish these two cases in the 
> > > [page](https://en.cppreference.com/w/cpp/atomic/atomic) seems 
> > > non-trivial).  Some options:
> > > 
> > > 1) treat them as multiple-header symbols (like what this patch does now)
> > > 2) special-case these symbols like `std::move()`
> > > 3) always prefer the header providing generic templates
> > > 
> > > @kadircet, what do you think?
> > right, i believe this patch is definitely adding keeping multiple headers 
> > for a symbol around, but mixing it with keeping headers for variants (e.g. 
> > overloads provided by different headers, or specializations as mentioned 
> > here).
> > 
> > we definitely need some more changes in parser to make sure we're only 
> > preserving alternatives for **the same symbol** and not for any other 
> > variants (overloads, specializations). IIRC there are currently 2 places 
> > these variants could come into play:
> > - first is the symbol index page itself, symbols that have ` (foo)` next to 
> > them have variants and should still be ignored (e.g. std::remove variant of 
> > cstdio shouldn't be preserved in the scope of this patch)
> > - second is inside the detail pages for symbols, e.g. 
> > [std::atomic](http://go/std::atomic), we can have headers for different 
> > declarations, they're clearly different variants so we shouldn't add such 
> > symbols into the mapping `_ParseSymbolPage` already does some detection of 
> > declarations in between headers.
> > 
> > in the scope of this patch, we should keep ignoring both.
> I suggest to special-case the overloads for now, just not to solve all the 
> problems in the same patch.
The first group are already ignored. We need to take a lot at how to ignore the 
second one.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D142092

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

Reply via email to