Szelethus added inline comments.
================
Comment at: clang/lib/Frontend/FrontendActions.cpp:501
+
+ if (const auto *Decl = dyn_cast<TagDecl>(NamedTemplate)) {
+ if (const auto *R = dyn_cast<RecordDecl>(Decl)) {
----------------
Szelethus wrote:
> martong wrote:
> > martong wrote:
> > > Should this handle `EnumDecl`s as well? An enum declaration itself cannot
> > > be a primary template, however, it can be 1) a member of a specialization
> > > of a templated class 2) an instantiation of a member enumeration of a
> > > class template specialization.
> > >
> > >
> > Should this handle variable templates (VarTemplateDecl) as well? Or it is
> > not possible to have unnamed variable templates?
> `EnumDecl` is a subclass of `TagDecl`, unless I misunderstood what you meant?
Right now, yes, it seems to that unnamed variable templates are not a thing.
================
Comment at: clang/lib/Frontend/FrontendActions.cpp:501-510
+ if (const auto *Decl = dyn_cast<TagDecl>(NamedTemplate)) {
+ if (const auto *R = dyn_cast<RecordDecl>(Decl)) {
+ if (R->isLambda()) {
+ OS << "lambda at ";
+ Decl->getLocation().print(OS, TheSema.getSourceManager());
+ return;
+ }
----------------
martong wrote:
> martong wrote:
> > Should this handle `EnumDecl`s as well? An enum declaration itself cannot
> > be a primary template, however, it can be 1) a member of a specialization
> > of a templated class 2) an instantiation of a member enumeration of a
> > class template specialization.
> >
> >
> Should this handle variable templates (VarTemplateDecl) as well? Or it is
> not possible to have unnamed variable templates?
`EnumDecl` is a subclass of `TagDecl`, unless I misunderstood what you meant?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D115521/new/
https://reviews.llvm.org/D115521
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits