| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
completions. Plus, tweak a few completion patterns to better reflect
the language grammar.
llvm-svn: 104905
|
| |
|
|
|
|
|
| |
message. This completion gives better results than just using the
"expression" completion, which is effectively what happened before.
llvm-svn: 104895
|
| |
|
|
|
|
| |
by-value. We now only prepend a space if it is needed.
llvm-svn: 104889
|
| |
|
|
|
|
| |
noted, is not the same as __attribute__((packed)). That would be ridiculous!
llvm-svn: 104865
|
| |
|
|
| |
llvm-svn: 104864
|
| |
|
|
|
|
| |
instantiation of a dependent elaborated type specifier. Fixes PR 7199.
llvm-svn: 104822
|
| |
|
|
|
|
|
| |
- Docs are fairly sketchy, if someone wants to pore through gcc to look for
holes I'd appreciate any failing test cases!
llvm-svn: 104809
|
| |
|
|
| |
llvm-svn: 104799
|
| |
|
|
|
|
| |
exposes less details.
llvm-svn: 104797
|
| |
|
|
| |
llvm-svn: 104795
|
| |
|
|
| |
llvm-svn: 104789
|
| |
|
|
|
|
| |
shares the stack with '#pragma pack', who knew!?
llvm-svn: 104786
|
| |
|
|
| |
llvm-svn: 104751
|
| |
|
|
| |
llvm-svn: 104739
|
| |
|
|
| |
llvm-svn: 104733
|
| |
|
|
| |
llvm-svn: 104712
|
| |
|
|
|
|
|
|
|
| |
any arguments that are default-argument expressions. The can show up
when we have a new expression whose constructor arguments are not
type-dependent and whose allocated type is not dependent and has a
constructor with default arguments. Fixes PR7202.
llvm-svn: 104690
|
| |
|
|
|
|
|
|
| |
diagnostics. That would be while we're parsing string literals for the
sole purpose of producing a diagnostic about them. Fixes
<rdar://problem/8026030>.
llvm-svn: 104684
|
| |
|
|
|
|
| |
statements }) in the code-completion results if explicitly requested.
llvm-svn: 104637
|
| |
|
|
|
|
| |
derived-to-base conversion on a pointer. Fixes PR7224.
llvm-svn: 104607
|
| |
|
|
|
|
|
|
|
|
|
| |
1) Suppress diagnostics as soon as we form the code-completion
token, so we don't get any error/warning spew from the early
end-of-file.
2) If we consume a code-completion token when we weren't expecting
one, go into a code-completion recovery path that produces the best
results it can based on the context that the parser is in.
llvm-svn: 104585
|
| |
|
|
|
|
|
|
|
| |
VTableUse array if we promote a vtable from being just used to having its definition required. This ensures that we properly inform the consumer about whether the vtable is required or not, previously we could fail to do so when the vtable was in the VTableUses array before the decl which marked it as required.
- I think this can be cleaned up, since this means we may notify the consumer about the vtable twice, but I didn't see an easy fix for this without more substantial refactoring.
- Doug, please review!
llvm-svn: 104577
|
| |
|
|
| |
llvm-svn: 104576
|
| |
|
|
|
|
| |
dependent. Fixes <rdar://problem/8021385>.
llvm-svn: 104550
|
| |
|
|
|
|
| |
aren't dependent. Fixes <rdar://problem/8020206>.
llvm-svn: 104511
|
| |
|
|
|
|
|
| |
extension warning (which other compilers seem to use). Works around a
known bug in Xalan.
llvm-svn: 104509
|
| |
|
|
|
|
| |
conversion. Fixes PR7095.
llvm-svn: 104476
|
| |
|
|
|
|
| |
type. Fixes PR7051.
llvm-svn: 104475
|
| |
|
|
|
|
|
|
| |
VLA restrictions so that one can use VLAs in templates (even
accidentally), but not as part of a non-type template parameter (which
would be very bad).
llvm-svn: 104471
|
| |
|
|
| |
llvm-svn: 104470
|
| |
|
|
|
|
|
| |
UnresolvedMemberExpr in their constructors, rather than adding them
after the fact. No functionality change.
llvm-svn: 104468
|
| |
|
|
| |
llvm-svn: 104445
|
| |
|
|
|
|
|
| |
enum contexts (along with block contexts, which we already did). Fixes
PR7196.
llvm-svn: 104444
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
in several important ways:
- VLAs of non-POD types are not permitted.
- VLAs cannot be used in conjunction with C++ templates.
These restrictions are intended to keep VLAs out of the parts of the
C++ type system where they cause the most trouble. Fixes PR5678 and
<rdar://problem/8013618>.
llvm-svn: 104443
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
temporaries. There are actually several interrelated fixes here:
- When converting an object to a base class, it's only an lvalue
cast when the original object was an lvalue and we aren't casting
pointer-to-derived to pointer-to-base. Previously, we were
misclassifying derived-to-base casts of class rvalues as lvalues,
causing various oddities (including problems with reference binding
not extending the lifetimes of some temporaries).
- Teach the code for emitting a reference binding how to look
through no-op casts and parentheses directly, since
Expr::IgnoreParenNoOpCasts is just plain wrong for this. Also, make
sure that we properly look through multiple levels of indirection
from the temporary object, but destroy the actual temporary object;
this fixes the reference-binding issue mentioned above.
- Teach Objective-C message sends to bind the result as a temporary
when needed. This is actually John's change, but it triggered the
reference-binding problem above, so it's included here. Now John
can actually test his return-slot improvements.
llvm-svn: 104434
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the required "template" keyword, using the same heuristics we do for
dependent template names in member access expressions, e.g.,
test/SemaTemplate/dependent-template-recover.cpp:11:8: error: use 'template'
keyword to treat 'getAs' as a dependent template name
T::getAs<U>();
^
template
Fixes PR5404.
llvm-svn: 104409
|
| |
|
|
|
|
| |
for variable arguments list methods. (radar 8006060).
llvm-svn: 104407
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that is missing the 'template' keyword, e.g.,
t->getAs<T>()
where getAs is a member of an unknown specialization. C++ requires
that we treat "getAs" as a value, but that would fail to parse since T
is the name of a type. We would then fail at the '>', since a type
cannot be followed by a '>'.
This is a very common error for C++ programmers to make, especially
since GCC occasionally allows it when it shouldn't (as does Visual
C++). So, when we are in this case, we use tentative parsing to see if
the tokens starting at "<" can only be parsed as a template argument
list. If so, we produce a diagnostic with a fix-it that states that
the 'template' keyword is needed:
test/SemaTemplate/dependent-template-recover.cpp:5:8: error: 'template' keyword
is required to treat 'getAs' as a dependent template name
t->getAs<T>();
^
template
This is just a start of this patch; I'd like to apply the same
approach to everywhere that a template-id with dependent template name
can be parsed.
llvm-svn: 104406
|
| |
|
|
|
|
|
| |
be sure to merge its parameter scope with its parent's scope. Fixes
PR7184.
llvm-svn: 104386
|
| |
|
|
|
|
| |
Fixes <rdar://problem/7987650>.
llvm-svn: 104376
|
| |
|
|
|
|
|
| |
CXXBasePaths::isAmbiguous(), rather than just asserting that we have a
canonical type. Fixes PR7176.
llvm-svn: 104374
|
| |
|
|
|
|
| |
to the associated object declaration.
llvm-svn: 104309
|
| |
|
|
|
|
|
|
|
| |
sure that the anonymous struct/union record declaration gets
instantiated before the variable declaration, and that it and its
fields (recursively) get entries in the local instantiation map. Fixes
PR7088.
llvm-svn: 104305
|
| |
|
|
| |
llvm-svn: 104299
|
| |
|
|
|
|
| |
classes whose base class have GC'able object pointers.
llvm-svn: 104296
|
| |
|
|
|
|
|
|
| |
recursively, e.g. so that members of anonymous unions inside anonymous structs
still get initialized. Also generate default constructor calls for anonymous
struct members when necessary.
llvm-svn: 104292
|
| |
|
|
|
|
|
|
|
| |
capture failures when we try to initialize an incomplete
type. Previously, we would (ab)use FK_ConversionFailed, then
occasionally dereference a null pointer when trying to diagnose the
failure. Fixes <rdar://problem/7959007>.
llvm-svn: 104286
|
| |
|
|
|
|
|
| |
class for UnresolvedLookupExprs, even when occuring on template
names" along with a fix for an Objective-C++ crasher it introduced.
llvm-svn: 104277
|
| |
|
|
| |
llvm-svn: 104226
|
| |
|
|
|
|
| |
getFullSourceRange -> getSourceRange for TypeLoc.
llvm-svn: 104220
|