efriedma-quic wrote:

> > Making Sema pull the TBAA info out of clang/lib/CodeGen is a layering 
> > violation (and probably breaks if we aren't actually generating code). If 
> > we need some notion of "aliasing" in Sema, we should pull the relevant code 
> > into clang/lib/AST.
> 
> That's unfortunate. The code will not call the TBAA stuff if the code 
> generator doesn't provide that predicate -- so if not generating optimized 
> code the warning is inactive. This is the same as with GCC btw. To be clear 
> what's exposed is a new predicate allowing querying of type conversion's 
> TBAAness -- the representations of TBAA etc are not exposed. The CodeGen TBAA 
> machinery builds on llvm's aliasing MDNodes. It would seem a large task to 
> replicate that in AST (and I presume propagating llvm's bits further into AST 
> is even worse?)

On the LLVM side, there's very little interesting logic; it's basically just 
walking the tree of metadata nodes generated by clang.  See 
https://llvm.org/docs/LangRef.html#tbaa-node-semantics .  The hard part of the 
refactoring would just be adding an abstraction for the underlying information.

gcc has made various unfortunate decisions regarding diagnostics in the past; 
we've put a lot of effort into making sure our diagnostics are more consistent.

https://github.com/llvm/llvm-project/pull/74155
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to