[clang] [clang] Fix implicit integer conversion for opaque enums declared in class templates (PR #121039)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 6 10:19:53 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>
thebrandre 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](https://godbolt.org/z/GzYq9jzjo).
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](https://godbolt.org/z/vKG6vqWhs). I have already started working on these issues but so far they seem unrelated.
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! đŸ™‚
https://github.com/llvm/llvm-project/pull/121039
More information about the cfe-commits
mailing list