| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
for copy-initialization.
llvm-svn: 91909
|
| |
|
|
| |
llvm-svn: 91802
|
| |
|
|
|
|
| |
pull ':' eating out of ParseAsmOperandsOpt.
llvm-svn: 91801
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because of the rules of base-class lookup* and the restrictions on typedefs, it
was actually impossible for this to cause any problems more serious than the
spurious acceptance of
template <class T> class A : B<A> { ... };
instead of
template <class T> class A : B<A<T> > { ... };
but I'm sure we can all agree that that is a very important restriction which
is well worth making another Parser->Sema call for.
(*) n.b. clang++ does not implement these rules correctly; we are not ignoring
non-type names
llvm-svn: 91792
|
| |
|
|
|
|
| |
quite right; I'll come back to it later. It does fix PR 5741.
llvm-svn: 91789
|
| |
|
|
|
|
|
| |
the redeclaration problems in the [temp.explicit]p3 testcase worse, but I can
live with that; they'll need to be fixed more holistically anyhow.
llvm-svn: 91771
|
| |
|
|
|
|
|
| |
Magically fixes all the terrible lookup problems associated with not pushing
a new scope. Resolves an ancient xfail and an LLVM misparse.
llvm-svn: 91769
|
| |
|
|
| |
llvm-svn: 91738
|
| |
|
|
|
|
|
| |
scope specifiers. Fix a tentative parsing bug that came up in LLVM.
Incidentally fixes some random FIXMEs in an existing testcase.
llvm-svn: 91734
|
| |
|
|
|
|
| |
Action::FullExpr to Action::MakeFullExpr to avoid name clashes.
llvm-svn: 91494
|
| |
|
|
| |
llvm-svn: 91215
|
| |
|
|
|
|
| |
no extra safety anyway.
llvm-svn: 91207
|
| |
|
|
|
|
|
| |
in a file context. In well-formed code, only happens with friend functions.
Fixes PR 5760.
llvm-svn: 91146
|
| |
|
|
|
|
|
|
|
|
|
|
| |
is difficult because they're so terribly, terribly ambiguous.
We implement access declarations in terms of using declarations, which is
quite reasonable. However, we should really persist the access/using
distinction in the AST and use the appropriate name in diagnostics. This
isn't a priority, so I'll just file a PR and hope someone else does it. :)
llvm-svn: 91095
|
| |
|
|
| |
llvm-svn: 91079
|
| |
|
|
| |
llvm-svn: 91067
|
| |
|
|
|
|
| |
a better diagnostic in the second example.
llvm-svn: 91040
|
| |
|
|
| |
llvm-svn: 91039
|
| |
|
|
|
|
|
| |
to use ColonProtectionRAIIObject in the C codepath even though it
won't matter for consistency.
llvm-svn: 91037
|
| |
|
|
| |
llvm-svn: 91024
|
| |
|
|
|
|
|
| |
TODOs for other classes that could be moved out of Parser.h. I don't plan
to do these in the near term though.
llvm-svn: 91023
|
| |
|
|
| |
llvm-svn: 91016
|
| |
|
|
|
|
|
| |
to be a bool in Parser that is twiddled by the ColonProtectionRAIIObject
class. No functionality change.
llvm-svn: 91014
|
| |
|
|
| |
llvm-svn: 91008
|
| |
|
|
|
|
| |
of dirty data around.
llvm-svn: 91002
|
| |
|
|
|
|
| |
(fixes radar 7457109).
llvm-svn: 90986
|
| |
|
|
| |
llvm-svn: 90769
|
| |
|
|
| |
llvm-svn: 90757
|
| |
|
|
| |
llvm-svn: 90756
|
| |
|
|
| |
llvm-svn: 90731
|
| |
|
|
|
|
| |
This time with a fix to bail out when in a dependent context.
llvm-svn: 90730
|
| |
|
|
| |
llvm-svn: 90729
|
| |
|
|
|
|
| |
to fix it ATM.
llvm-svn: 90717
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
intended. On the first testcase in the bug, we now produce:
cxx-decl.cpp:12:2: error: unexpected ':' in nested name specifier
y:a a2;
^
::
instead of:
t.cc:8:1: error: C++ requires a type specifier for all declarations
x:a a2;
^
t.cc:8:2: error: invalid token after top level declarator
x:a a2;
^
;
t.cc:9:11: error: use of undeclared identifier 'a2'
x::a a3 = a2;
^
llvm-svn: 90713
|
| |
|
|
| |
llvm-svn: 90712
|
| |
|
|
| |
llvm-svn: 90710
|
| |
|
|
|
|
|
| |
Make it an inner class of Parser to assuage access control.
No functionality change.
llvm-svn: 90491
|
| |
|
|
| |
llvm-svn: 90361
|
| |
|
|
|
|
|
| |
function names outside of templates - they'll probably cause some damage there as
they're largely untested.
llvm-svn: 90064
|
| |
|
|
| |
llvm-svn: 90044
|
| |
|
|
| |
llvm-svn: 90030
|
| |
|
|
|
|
| |
DeclarationName can't handle them yet, so right now Parser just errors out on them.
llvm-svn: 90027
|
| |
|
|
| |
llvm-svn: 89894
|
| |
|
|
|
|
|
| |
still parse the body of the switch to try to avoid spurious
diagnostics. Fixes PR5606.
llvm-svn: 89847
|
| |
|
|
|
|
| |
The attributes are currently ignored.
llvm-svn: 89837
|
| |
|
|
|
|
| |
to build casted expression-list AST to Sema.
llvm-svn: 89827
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All statements that involve conditions can now hold on to a separate
condition declaration (a VarDecl), and will use a DeclRefExpr
referring to that VarDecl for the condition expression. ForStmts now
have such a VarDecl (I'd missed those in previous commits).
Also, since this change reworks the Action interface for
if/while/switch/for, use FullExprArg for the full expressions in those
expressions, to ensure that we're emitting
Note that we are (still) not generating the right cleanups for
condition variables in for statements. That will be a follow-on
commit.
llvm-svn: 89817
|
| |
|
|
|
|
| |
definition. This allows sema to not emit spurious diagnostics in some invalid code.
llvm-svn: 89816
|
| |
|
|
| |
llvm-svn: 89801
|
| |
|
|
|
|
| |
type-casts in the parser.
llvm-svn: 89691
|