AaronBallman wrote:

> > I kind of think "no enforcement for invalid input" is reasonable here. That 
> > would be consistent with things like the alias attribute where we accept a 
> > string that has to conform to ABI mangling rules (which could be a matter 
> > of poor QoI rather than precedent).
> 
> If I'm not mistaken, `alias` does _not_ accept invalid input, because the 
> compiler ensures the given string matches the mangled name of another entity 
> in the program. Now, if Clang creates an invalid mangling for that entity 
> (due to, for example, an unchecked `abi_tag`), `alias` will also accept that 
> invalid mangling.

Fair point, I was thinking in terms of compiler construction. We don't do that 
semantically, we do that during codegen: https://godbolt.org/z/PMaK431nv

But for `alias`, we can do that from codegen relatively easily. We can't do it 
for `abi_tag` though because we don't have an exposed interface for checking 
identifier validity outside of the lexer.

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

Reply via email to