summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/expr/expr.prim
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement implicit capture for lambda expressions.Eli Friedman2012-02-031-2/+1
| | | | | | Still left: explicit captures in lambdas need to cause implicit capture, and I need to take a look at the diagnostics for some cases. llvm-svn: 149718
* Diagnose the restriction on default arguments in C++11 [expr.prim.lambda]p5.Douglas Gregor2012-02-011-0/+7
| | | | llvm-svn: 149517
* Improve checking of explicit captures in a C++11 lambda expression:Douglas Gregor2012-02-012-0/+40
| | | | | | | | | | | | | | - Actually building the var -> capture mapping properly (there was an off-by-one error) - Keeping track of the source location of each capture - Minor QoI improvements, e.g, highlighing the prior capture if there are multiple captures, pointing at the variable declaration we found if we reject it. As part of this, add standard citations for the various semantic checks we perform, and note where we're not performing those checks as we should. llvm-svn: 149462
* Diagnose attempts to explicitly capture a __block variable in a lambda.Douglas Gregor2012-02-011-0/+11
| | | | llvm-svn: 149458
* Remove PotentiallyPotentiallyEvaluated, and replace it with a much simpler ↵Eli Friedman2012-01-201-0/+1
| | | | | | and less error-prone way of handling the relevant cases. Towards marking of whether a declaration is used more accurately. llvm-svn: 148522
* Make PotentiallyPotentiallyEvaluated contexts work correctly when ↵Eli Friedman2012-01-181-0/+8
| | | | | | referencing a class field from outside an instance method. llvm-svn: 148376
* Unlike in C++03, a constant-expression is not an unevaluated operand in C++11.Richard Smith2011-12-201-0/+9
| | | | | | | | | | | | | | | | | | | | | | Split out a new ExpressionEvaluationContext flag for this case, and don't treat it as unevaluated in C++11. This fixes some crash-on-invalids where we would allow references to class members in potentially-evaluated constant expressions in static member functions, and also fixes half of PR10177. The fix to PR10177 exposed a case where template instantiation failed to provide a source location for a diagnostic, so TreeTransform has been tweaked to supply source locations when transforming a type. The source location is still not very good, but MarkDeclarationsReferencedInType would need to operate on a TypeLoc to improve it further. Also fix MarkDeclarationReferenced in C++98 mode to trigger instantiation for static data members of class templates which are used in constant expressions. This fixes a link-time problem, but we still incorrectly treat the member as non-constant. The rest of the fix for that issue is blocked on PCH support for early-instantiated static data members, which will be added in a subsequent patch. llvm-svn: 146955
* Disallow decltype in qualified declarator-ids.David Blaikie2011-12-131-4/+0
| | | | llvm-svn: 146480
* Support decltype in nested-name-specifiers.David Blaikie2011-12-042-2/+83
| | | | llvm-svn: 145785
* Move tests to the appropriate directory to match the spec hierarchy.David Blaikie2011-11-072-0/+0
| | | | llvm-svn: 143906
* Update all tests other than Driver/std.cpp to use -std=c++11 rather thanRichard Smith2011-10-132-2/+2
| | | | | | -std=c++0x. Patch by Ahmed Charles! llvm-svn: 141900
* Implement support for C++11 in-class initialization of non-static data members.Richard Smith2011-06-112-0/+22
llvm-svn: 132878
OpenPOWER on IntegriCloud