llvm-project/clang/lib/Parse
Nathan Sidwell b2d0c16e91 [clang] p1099 using enum part 2
This implements the 'using enum maybe-qualified-enum-tag ;' part of
1099. It introduces a new 'UsingEnumDecl', subclassed from
'BaseUsingDecl'. Much of the diff is the boilerplate needed to get the
new class set up.

There is one case where we accept ill-formed, but I believe this is
merely an extended case of an existing bug, so consider it
orthogonal. AFAICT in class-scope the c++20 rule is that no 2 using
decls can bring in the same target decl ([namespace.udecl]/8). But we
already accept:

struct A { enum { a }; };
struct B : A { using A::a; };
struct C : B { using A::a;
using B::a; }; // same enumerator

this patch permits mixtures of 'using enum Bob;' and 'using Bob::member;' in the same way.

Differential Revision: https://reviews.llvm.org/D102241
2021-06-08 11:11:46 -07:00
..
CMakeLists.txt [openmp] Base of tablegen generated OpenMP common declaration 2020-06-23 10:32:32 -04:00
ParseAST.cpp [Support] Add TimeTraceScope constructor without detail arg 2019-12-11 14:32:21 +00:00
ParseCXXInlineMethods.cpp [NFC, Refactor] Modernize enum FunctionDefinitionKind (DeclSpech.h) into a scoped enum 2020-11-21 09:49:52 -06:00
ParseDecl.cpp [clang][Parse] Add parsing support for C++ attributes on using-declarations 2021-06-01 08:47:50 -04:00
ParseDeclCXX.cpp [clang] p1099 using enum part 2 2021-06-08 11:11:46 -07:00
ParseExpr.cpp Reimplement __builtin_unique_stable_name- 2021-05-27 07:12:20 -07:00
ParseExprCXX.cpp [clang] Fix ternary operator in the second for loop statement 2021-05-16 10:42:52 -07:00
ParseInit.cpp [CodeCompletion] Avoid spurious signature help for init-list args 2021-03-16 12:46:40 +01:00
ParseObjc.cpp [CodeCompletion] Avoid spurious signature help for init-list args 2021-03-16 12:46:40 +01:00
ParseOpenMP.cpp [OpenMP] Overhaul `declare target` handling 2021-05-06 02:10:41 -05:00
ParsePragma.cpp [OpenCL] Drop pragma handling for extension types/decls. 2021-05-17 12:09:43 +01:00
ParseStmt.cpp [clang][parser] Unify rejecting (non) decl stmts with gnu attributes 2021-04-19 12:43:55 +02:00
ParseStmtAsm.cpp [MC] Refactor MCObjectFileInfo initialization and allow targets to create MCObjectFileInfo 2021-05-23 14:15:23 -07:00
ParseTemplate.cpp PR45699: Fix crash if an unexpanded parameter pack appears in a 2020-12-03 15:26:06 -08:00
ParseTentative.cpp [clang] Fix ternary operator in the second for loop statement 2021-05-16 10:42:52 -07:00
Parser.cpp Re-commit [clang] Add support for the "abstract" contextual keyword of MSVC 2021-05-31 18:45:26 +02:00