| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
pointer to incomplete type from an ExtWarn to an error. We put the
ExtWarn in place as part of a workaround for Boost (PR6527), but it
(1) doesn't actually match a GCC extension and (2) has been fixed for
two years in Boost, and (3) causes us to emit code that fails badly at
run time, so it's a bad idea to keep it. Fixes PR11803.
llvm-svn: 148838
|
|
|
|
|
|
|
| |
also consider whether any of the parameter types (as written, prior to
decay) are dependent. Fixes PR9880 and <rdar://problem/9408413>.
llvm-svn: 131099
|
|
|
|
| |
llvm-svn: 126599
|
|
|
|
| |
llvm-svn: 126037
|
|
|
|
|
|
|
| |
we don't see a DeclStmt (failure to instantiate which generally causes
panic).
llvm-svn: 112282
|
|
|
|
|
|
|
|
|
|
| |
int test1() {
return;
}
default to an error.
llvm-svn: 108108
|
|
|
|
|
|
|
|
| |
mapping from the declaration in the template to the instantiated
declaration before transforming the initializer, in case some crazy
lunatic decides to use a variable in its own initializer. Fixes PR7016.
llvm-svn: 102945
|
|
|
|
|
|
| |
there's a good equivalent that's actually true, unfortunately.
llvm-svn: 98253
|
|
|
|
|
|
|
|
|
| |
incomplete type to warnings; GCC (and EDG in GCC compatibility mode)
permit such handles. Fixes PR6527.
(For real this time)
llvm-svn: 97927
|
|
|
|
| |
llvm-svn: 97926
|
|
|
|
|
|
|
| |
incomplete type to warnings; GCC (and EDG in GCC compatibility mode)
permit such handles. Fixes PR6527.
llvm-svn: 97925
|
|
|
|
|
|
| |
with "address taken of label in protected scope, jump to it would have unknown effect on scope"
llvm-svn: 97495
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
new InitializationSequence. This fixes some bugs (e.g., PR5808),
changed some diagnostics, and caused more churn than expected. What's
new:
- InitializationSequence now has a "C conversion sequence" category
and step kind, which falls back to
- Changed the diagnostics for returns to always have the result type
of the function first and the type of the expression second.
CheckSingleAssignmentConstraints to peform checking in C.
- Improved ASTs for initialization of return values. The ASTs now
capture all of the temporaries we need to create, but
intentionally do not bind the tempoary that is actually returned,
so that it won't get destroyed twice.
- Make sure to perform an (elidable!) copy of the class object that
is returned from a class.
- Fix copy elision in CodeGen to properly see through the
subexpressions that occur with elidable copies.
- Give "new" its own entity kind; as with return values and thrown
objects, we don't bind the expression so we don't call a
destructor for it.
Note that, with this patch, I've broken returning move-only types in
C++0x. We'll fix it later, when we tackle NRVO.
llvm-svn: 91669
|
|
|
|
|
|
|
|
|
| |
- This is designed to make it obvious that %clang_cc1 is a "test variable"
which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
can be useful to redefine what gets run as 'clang -cc1' (for example, to set
a default target).
llvm-svn: 91446
|
|
|
|
| |
llvm-svn: 89801
|
|
|
|
| |
llvm-svn: 75291
|
|
|
|
|
|
| |
injected class name type. Fixes pr4383.
llvm-svn: 73284
|
|
|
|
| |
llvm-svn: 72301
|
|
|
|
|
|
|
|
| |
llvm::SmallVector that owns all of the AST nodes inside of it. This
RAII class is used to ensure proper destruction of AST nodes when
template instantiation fails.
llvm-svn: 72186
|
|
|
|
|
|
|
|
|
|
| |
temporaries are generated for some object-constructing expressions in
templates that are not type-dependent.
Also, be sure to introduce the variable from a CXXConditionDeclExpr
into the set of instantiated local variables.
llvm-svn: 72185
|
|
|
|
| |
llvm-svn: 72035
|
|
|
|
| |
llvm-svn: 72016
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
template, introduce that member function into the template
instantiation stack. Also, add diagnostics showing the member function
within the instantiation stack and clean up the qualified-name
printing so that we get something like:
note: in instantiation of member function 'Switch1<int, 2, 2>::f'
requested here
in the template instantiation backtrace.
llvm-svn: 72015
|
|
|
|
| |
llvm-svn: 71917
|
|
|
|
| |
llvm-svn: 71916
|
|
|
|
| |
llvm-svn: 71907
|
|
|
|
| |
llvm-svn: 71903
|
|
|
|
| |
llvm-svn: 71901
|
|
|
|
| |
llvm-svn: 71899
|
|
|
|
| |
llvm-svn: 71896
|
|
|
|
|
|
|
|
|
|
| |
constructors and destructors. This is a requirement of
DeclarationNameTable::getCXXSpecialName that we weren't assert()'ing,
so it should have been caught much earlier :(
Big thanks to Anders for the test case.
llvm-svn: 71895
|
|
|
|
| |
llvm-svn: 71886
|
|
|
|
|
|
|
|
| |
- Skip semantic analysis of the "if" condition if it is type-dependent.
- Added the location of the "else" keyword into IfStmt, so that we can
provide it for type-checking after template instantiation.
llvm-svn: 71875
|
|
|
|
|
|
| |
instantiating the definition of a function from a template.
llvm-svn: 71869
|
|
|
|
| |
llvm-svn: 71825
|
|
|
|
| |
llvm-svn: 71822
|
|
|
|
| |
llvm-svn: 71818
|
|
|
|
| |
llvm-svn: 71816
|
|
functions of class templates. Only compound statements and expression
statements are currently implemented.
llvm-svn: 71814
|