| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
| |
expression after we've finished the function body of the corresponding
function call operator. Otherwise, ActOnFinishFunctionBody() will see
the (unfinished) evaluation context of the lambda expression
itself. Fixes PR12031.
llvm-svn: 151082
|
| |
|
|
|
|
| |
is non-null when diagnosing a broken attempt to write a for-range-statement.
llvm-svn: 151081
|
| |
|
|
|
|
| |
warn if the format string argument is a parameter that is not itself declared as a format string with compatible format.
llvm-svn: 151080
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
arguments. There are two aspects to this:
- Make sure that when marking the declarations referenced in a
default argument, we don't try to mark local variables, both because
it's a waste of time and because the semantics are wrong: we're not
in a place where we could capture these variables again even if it
did make sense.
- When a lambda expression occurs in a default argument of a
function template, make sure that the corresponding closure type is
considered dependent, so that it will get properly instantiated. The
second bit is a bit of a hack; to fix it properly, we may have to
rearchitect our handling of default arguments, parsing them only
after creating the function definition. However, I'd like to
separate that work from the lambdas work.
llvm-svn: 151076
|
| |
|
|
|
|
| |
that's installed.
llvm-svn: 151058
|
| |
|
|
| |
llvm-svn: 151037
|
| |
|
|
| |
llvm-svn: 151036
|
| |
|
|
|
|
| |
and useable while debugging.
llvm-svn: 151033
|
| |
|
|
|
|
|
|
|
| |
stable mangling, since these lambdas can end up in multiple
translation units. Sema is responsible for deciding when this is the
case, because it's already responsible for choosing the mangling
number.
llvm-svn: 151029
|
| |
|
|
| |
llvm-svn: 151027
|
| |
|
|
|
|
| |
initializers of data members (both static and non-static).
llvm-svn: 151017
|
| |
|
|
| |
llvm-svn: 151014
|
| |
|
|
|
|
| |
positive with nested array literals. <rdar://problem/10686586>
llvm-svn: 151012
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
default arguments of function parameters. This simple-sounding task is
complicated greatly by two issues:
(1) Default arguments aren't actually a real context, so we need to
maintain extra state within lambda expressions to track when a
lambda was actually in a default argument.
(2) At the time that we parse a default argument, the FunctionDecl
doesn't exist yet, so lambda closure types end up in the enclosing
context. It's not clear that we ever want to change that, so instead
we introduce the notion of the "effective" context of a declaration
for the purposes of name mangling.
llvm-svn: 151011
|
| |
|
|
| |
llvm-svn: 151010
|
| |
|
|
| |
llvm-svn: 151008
|
| |
|
|
| |
llvm-svn: 151007
|
| |
|
|
| |
llvm-svn: 151005
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
from the one stored in the PCH/AST, while trying to load a SLocEntry.
We verify that all files of the PCH did not change before loading it but this is not enough because:
- The AST may have been 1) kept around, 2) to do queries on it.
- We may have 1) verified the PCH and 2) started parsing.
Between 1) and 2) files may change and we are going to have crashes because the rest of clang
cannot deal with the ASTReader failing to read a SLocEntry.
Handle this by recovering gracefully in such a case, by initializing the SLocEntry
with the info from the PCH/AST as well as reporting failure by the ASTReader.
rdar://10888929
llvm-svn: 151004
|
| |
|
|
|
|
|
| |
explicit specialization of a function template, mark the instantiation as
constexpr if the specialization is, rather than requiring them to match.
llvm-svn: 151001
|
| |
|
|
| |
llvm-svn: 150996
|
| |
|
|
|
|
|
|
| |
by default.
Recording nested macro expansions is not useful, plus it fixes rdar://10893630
llvm-svn: 150995
|
| |
|
|
|
|
|
| |
the 'invariant.load' metadata tag onto those loads.
// rdar://10840980
llvm-svn: 150994
|
| |
|
|
|
|
| |
tests.
llvm-svn: 150993
|
| |
|
|
| |
llvm-svn: 150989
|
| |
|
|
|
|
|
|
|
|
|
|
| |
checks:
- unix.Malloc - Checks for memory leaks, double free, use-after-free.
- unix.cstring.NullArg - Checks for null pointers passed as arguments to
CString functions + evaluates CString functions.
- unix.cstring.BadSizeArg - Checks for common anti-patterns in
strncat size argument.
llvm-svn: 150988
|
| |
|
|
|
|
|
|
|
| |
and introducing the lambda closure type and its function call
operator. Previously, we assumed that the lambda closure type would
land directly in the current context, and not some parent context (as
occurs with linkage specifications). Thanks to Richard for the test case.
llvm-svn: 150987
|
| |
|
|
|
|
|
| |
modern meta-data translation by commenting out private ivar
declarations in user source. Also, added several tests.
llvm-svn: 150985
|
| |
|
|
|
|
|
| |
of that variable; it will need to be recomputed with the resolved
type.
llvm-svn: 150984
|
| |
|
|
| |
llvm-svn: 150983
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
name mangling in the Itanium C++ ABI for lambda expressions is so
dependent on context, we encode the number used to encode each lambda
as part of the lambda closure type, and maintain this value within
Sema.
Note that there are a several pieces still missing:
- We still get the linkage of lambda expressions wrong
- We aren't properly numbering or mangling lambda expressions that
occur in default function arguments or in data member initializers.
- We aren't (de-)serializing the lambda numbering tables
llvm-svn: 150982
|
| |
|
|
|
|
|
|
|
|
| |
handled by the caching and rauw. Also fix one cache that wasn't
being added to highlighted by this patch. Update all testcases
accordingly.
This should fix the deall failure.
llvm-svn: 150977
|
| |
|
|
|
|
|
| |
temporary forward declaration nodes. Fixes a problem building
Chrome.
llvm-svn: 150976
|
| |
|
|
| |
llvm-svn: 150972
|
| |
|
|
|
|
| |
Type.is_restrict_qualified
llvm-svn: 150971
|
| |
|
|
| |
llvm-svn: 150970
|
| |
|
|
| |
llvm-svn: 150969
|
| |
|
|
|
|
|
| |
properly. Previously, we deserialized it but failed to set the
corresponding member in CXXNewExpr. Fixes <rdar://problem/10893600>.
llvm-svn: 150963
|
| |
|
|
| |
llvm-svn: 150960
|
| |
|
|
|
|
|
| |
The class name is long enough without the llvm:: added.
Also bring in RefCountedBase and RefCountedBaseVPTR.
llvm-svn: 150958
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
match the behavior of GCC. Also add a test for these intrinsics, which
apparently have *zero* tests. =[ Not surprisingly, Clang crashed when
compiling these.
Fix the bug in CodeGen where we failed to bitcast the argument type to
x86mmx prior to calling the LLVM intrinsic. This fixes an assert on the
new 3dnow-builtins.c test.
This is one issue impacting the efforts to get Clang to emulate the
Microsoft intrinsics headers -- 3dnow intrinsics are implictitly made
available there.
llvm-svn: 150948
|
| |
|
|
|
|
|
|
| |
implicit.
Fixes PR11929. Found by valgrind.
llvm-svn: 150943
|
| |
|
|
|
|
|
|
| |
TemplateIdAnnotation.
Found by valgrind.
llvm-svn: 150940
|
| |
|
|
|
|
|
| |
actually matching the write substrings, and stop looking for a leading
'/' to try and finish fixing darwin and other hosts.
llvm-svn: 150938
|
| |
|
|
|
|
| |
declared in class extension and implementation.
llvm-svn: 150937
|
| |
|
|
| |
llvm-svn: 150936
|
| |
|
|
| |
llvm-svn: 150933
|
| |
|
|
| |
llvm-svn: 150932
|
| |
|
|
| |
llvm-svn: 150931
|
| |
|
|
| |
llvm-svn: 150930
|