- Feb 17, 2012
-
-
John McCall authored
in the AST accessor and micro-optimize it very slightly. llvm-svn: 150787
-
John McCall authored
llvm-svn: 150786
-
Douglas Gregor authored
conversion to function pointer. Rather than having IRgen synthesize the body of this function, we instead introduce a static member function "__invoke" with the same signature as the lambda's operator() in the AST. Sema then generates a body for the conversion to function pointer which simply returns the address of __invoke. This approach makes it easier to evaluate a call to the conversion function as a constant, makes the linkage of the __invoke function follow the normal rules for member functions, and may make life easier down the road if we ever want to constexpr'ify some of lambdas. Note that IR generation is responsible for filling in the body of __invoke (Sema just adds a dummy body), because the body can't generally be expressed in C++. Eli, please review! llvm-svn: 150783
-
Richard Smith authored
llvm-svn: 150777
-
Richard Smith authored
loop and switch statements, by teaching Scope that a function scope never has a continue/break parent for the purposes of control flow. Remove the hack in block and lambda expressions which worked around this by pretending that such expressions were continue/break scopes. Remove Scope::ControlParent, since it's unused. In passing, teach default statements to recover properly from a missing ';', and add a fixit for same to both default and case labels (the latter already recovered correctly). llvm-svn: 150776
-
Richard Smith authored
zero-initialize class types with virtual bases when constant-evaluating an initializer. llvm-svn: 150770
-
Fariborz Jahanian authored
llvm-svn: 150767
-
- Feb 16, 2012
-
-
Eric Christopher authored
"Add a completed/incomplete type difference. This allows us to have partial types for contexts and forward decls while allowing us to complete types later on for debug purposes. This piggy-backs on the metadata replacement and rauw changes for temporary nodes and takes advantage of the incremental support I added in earlier. This allows us to, if we decide, to limit adding methods and variables to structures in order to limit the amount of debug information output into a .o file. The caching is a bit complicated though so any thoughts on untangling that are welcome." with a fix: - Remove all RAUW during type construction by adding stub versions of types that we later complete. and some TODOs: - Add an RAUW cache for forward declared types so that we can replace them at the end of compilation. - Remove the code that updates on completed types because we no longer need to have that happen. We emit incomplete types on purpose and only want to know when we want to complete them. llvm-svn: 150752
-
Eli Friedman authored
llvm-svn: 150738
-
Kaelyn Uhrain authored
Don't try to typo-correct a method redeclaration to declarations not in the current record as it could lead to infinite recursion if CorrectTypo finds more than one correction candidate in a parent record. llvm-svn: 150735
-
Anna Zaks authored
llvm-svn: 150734
-
Anna Zaks authored
- Rename the category "Logic Error" -> "Memory Error". - Shorten all the messages. llvm-svn: 150733
-
Anna Zaks authored
of failing realloc. + Minor cleanups. llvm-svn: 150732
-
Matt Beaumont-Gay authored
llvm-svn: 150731
-
Fariborz Jahanian authored
llvm-svn: 150728
-
Douglas Gregor authored
trailing return type but not a '()'. Recover by inserting the parentheses. Thanks to Xeo on IRC for the example. llvm-svn: 150727
-
Fariborz Jahanian authored
llvm-svn: 150726
-
Douglas Gregor authored
even if they are not within a function scope. Teach template instantiation to treat them as such, and make sure that we have a local instantiation scope when instantiating default arguments and static data members. llvm-svn: 150725
-
Richard Smith authored
llvm-svn: 150724
-
Ted Kremenek authored
Add checker visitation hooks in ExprEngine::Visit() for common no-op expressions. To be used later. llvm-svn: 150723
-
Ted Kremenek authored
Revert "Move ExplodedNode reclaimation out of ExprEngine and into CoreEngine. Also have it based on adding predecessors/successors, not node allocation. No measurable performance change." llvm-svn: 150722
-
Richard Smith authored
restriction and add some tests. llvm-svn: 150721
-
Ted Kremenek authored
Move ExplodedNode reclaimation out of ExprEngine and into CoreEngine. Also have it based on adding predecessors/successors, not node allocation. No measurable performance change. llvm-svn: 150720
-
Ted Kremenek authored
llvm-svn: 150719
-
Hans Wennborg authored
llvm-svn: 150716
-
Fariborz Jahanian authored
part of class meta-data. llvm-svn: 150714
-
Dan Gohman authored
llvm-svn: 150713
-
Hans Wennborg authored
llvm-svn: 150711
-
Douglas Gregor authored
name for dot syntax, e.g., NSObject.class or foo.class. For other C++-keywords-as-method-names, use message send syntax. Fixes <rdar://problem/10794452>. llvm-svn: 150710
-
Douglas Gregor authored
completions that don't insert braces. Fixes <rdar://problem/10764168>. llvm-svn: 150707
-
rdar://10289283Argyrios Kyrtzidis authored
Also fix the fixit (oh the irony) when it uses CFBridgingRetain/CFBridgingRelease; they are supposed to be calls with the casted expression as parameter, they should not be inserted into the cast like the __bridge keywords. llvm-svn: 150705
-
DeLesley Hutchins authored
dependent attributes on static members of templatized classes. llvm-svn: 150704
-
DeLesley Hutchins authored
llvm-svn: 150702
-
DeLesley Hutchins authored
Thread-safety analysis: Disable checking inside constructors, destructors, lock, and unlock functions llvm-svn: 150701
-
DeLesley Hutchins authored
llvm-svn: 150700
-
DeLesley Hutchins authored
For compatibility with gcc, clang will now parse gcc attributes on function definitions, but issue a warning if the attribute is not a thread safety attribute. Warning controlled by -Wgcc-compat. llvm-svn: 150698
-
Hans Wennborg authored
This is in preparation for being able to warn about 'q' and other non-standard format string features. It also allows us to print its name correctly. llvm-svn: 150697
-
David Chisnall authored
llvm-svn: 150696
-
Sebastian Redl authored
This finishes generalized initializer support in Sema. llvm-svn: 150688
-
Sebastian Redl authored
Revert "Revert "Make CXXNewExpr contain only a single initialier, and not hold the used constructor itself."" This reintroduces commit r150682 with a fix for the Bullet benchmark crash. llvm-svn: 150685
-