[clang] [clang] Fix implicit integer conversion for opaque enums declared in class templates (PR #121039)
Erich Keane via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 6 10:25:41 PST 2025
=?utf-8?q?André?= Brand <andre.brand at mailbox.org>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/121039 at github.com>
erichkeane wrote:
> @erichkeane I am not sure what you mean. As I pointed out earlier, the examples @cor3ntin brought up actually conform to the standard as in [[temp.spec.general]](https://wg21.link/temp.spec#temp.inst-3):
>
> > The implicit instantiation of a class template specialization causes the implicit instantiation of the declarations, but not of the definitions of [...] scoped member enumerations, [...]
>
> The issues are correctly diagnosed by clang if the struct is _explicitly instantiated_ as demonstrated here in Compiler Explorer: https://godbolt.org/z/GzYq9jzjo.
My quick look through the ActOnEnum and this function looked like it showed some misses. If Corentin is comfortable with our checking here, then I'm happy too.
>
> Nevertheless, I investigated further and managed to discover some real bugs with diagnostics on template instantiation. These affect not only enums but also nested classes. If you are interested, you can have a look: https://godbolt.org/z/vKG6vqWhs. I have already started working on these issues but so far they seem unrelated.
Thats great, thanks for finding that and working on it! Those look like some pretty unfortunate misses.
>
> I plan to keep working on it but I can't promise much given the facts that I only have the weekends to spend time on it and my limited familiarity with the codebase (this would be my very first commit to LLVM). But, of course, I promise to try my best! đŸ™‚
Definitely appreciate it!
I'm happy when Corentin is here, I have no concerns.
https://github.com/llvm/llvm-project/pull/121039
More information about the cfe-commits
mailing list