summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Early support for __format__attribute on blocks.Fariborz Jahanian2009-05-151-4/+32
| | | | | | Work in progress... llvm-svn: 71908
* Basic support for member exprs where the base expr type is dependent.Anders Carlsson2009-05-152-1/+20
| | | | llvm-svn: 71907
* Classes with "+load" methods need to go in the non-lazy class list (orDaniel Dunbar2009-05-151-10/+40
| | | | | | else the method will not be found by the runtime at class load time). llvm-svn: 71904
* Template instantiation for break and continue statements.Douglas Gregor2009-05-152-0/+19
| | | | llvm-svn: 71903
* Template instantiation for "for" loopsDouglas Gregor2009-05-154-2/+34
| | | | llvm-svn: 71901
* Template instantiation for do-while statements.Douglas Gregor2009-05-154-11/+33
| | | | llvm-svn: 71899
* Factor code for adding module-level class lists into separate method.Daniel Dunbar2009-05-151-43/+43
| | | | | | - No functionality change. llvm-svn: 71898
* Fixup parsing for (throw,throw) and __extension__ throw 1.Mike Stump2009-05-151-9/+2
| | | | llvm-svn: 71897
* Template instantiation for WhileStmt and CXXConditionDeclExpr.Douglas Gregor2009-05-153-11/+44
| | | | llvm-svn: 71896
* Make sure that we use the canonical type for the names of instantiatedDouglas Gregor2009-05-152-3/+7
| | | | | | | | | | 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
* improved on diagnosing misplacement of sentinel attributes.Fariborz Jahanian2009-05-152-5/+6
| | | | | | No change in functionality. llvm-svn: 71894
* Allow instantiation of NULL expressions and statementsDouglas Gregor2009-05-152-0/+6
| | | | llvm-svn: 71889
* This patch finishes off the sentinel attribute handling forFariborz Jahanian2009-05-152-9/+34
| | | | | | blocks and function pointers. llvm-svn: 71888
* I take it back, InstantiateExpr does not check for null.Anders Carlsson2009-05-151-4/+7
| | | | llvm-svn: 71887
* Instantiation support for 'this'Anders Carlsson2009-05-151-0/+12
| | | | llvm-svn: 71886
* No need to null check the expr, Sema::SemaRef.InstantiateExpr handles all that.Anders Carlsson2009-05-151-7/+4
| | | | llvm-svn: 71885
* Make sure that the type associated with a class template is dependent.Douglas Gregor2009-05-152-3/+14
| | | | llvm-svn: 71878
* Template instantiation for "if" statements. Also:Douglas Gregor2009-05-154-12/+38
| | | | | | | | - 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
* A C++ member function always has either weak linkage (if it's inline or ↵Anders Carlsson2009-05-151-0/+8
| | | | | | defined inline) or strong linkage (other cases). llvm-svn: 71873
* Move statement instantiation into its own file. No functionality changeDouglas Gregor2009-05-153-132/+153
| | | | llvm-svn: 71872
* When word-wrapping, be more defensive about a ridiculously small number of ↵Douglas Gregor2009-05-151-2/+4
| | | | | | columns. Fixes <rdar://problem/6892178> llvm-svn: 71870
* Call ActOnStartOfFunctionDecl/ActOnFinishFunctionBody whenDouglas Gregor2009-05-154-15/+25
| | | | | | instantiating the definition of a function from a template. llvm-svn: 71869
* Name mangling for class template specializations and template arguments.Anders Carlsson2009-05-151-2/+64
| | | | llvm-svn: 71861
* Fix processing of -Ufoo to not inject "#undef foo 1" into the predefinesChris Lattner2009-05-151-1/+11
| | | | | | | | | | | | | | | | buffer. This caused exciting nonsense like this: $ clang t.c -fsyntax-only -UMACRO In file included from <built-in>:104: <command line>:1:14: warning: extra tokens at end of #undef directive [-Wextra-tokens] #undef MACRO 1 ^ // 1 diagnostic generated. rdar://6891800 llvm-svn: 71860
* Fix crash when deriving the enclosing summary of a method whose first ↵Ted Kremenek2009-05-151-12/+16
| | | | | | selector slot has a null IdentifierInfo*. This happens when analyzing Growl. llvm-svn: 71857
* Remove extra whitespace character in string literal. Purely cosmetic.Ted Kremenek2009-05-151-1/+1
| | | | llvm-svn: 71847
* Use dyn_cast instead of cast to allow our assumptions to be safely wrong.Ted Kremenek2009-05-151-4/+12
| | | | llvm-svn: 71843
* Cleanup internal checks bug reporting, allowing intermediate diagnostics to ↵Ted Kremenek2009-05-151-71/+134
| | | | | | be generated for bad argument warnings, bad branches, etc. llvm-svn: 71838
* BugReporter (extensive diagnostics): Do not include the range of target '}'Ted Kremenek2009-05-151-4/+6
| | | | llvm-svn: 71832
* PathDiagnosticLocation::asRange(): for a PathDiagnosticLocation, the range ↵Ted Kremenek2009-05-151-0/+9
| | | | | | | | of a DeclStmt is only the decl, not the decl + initializer. llvm-svn: 71831
* BugReporter (extensive diagnostics): Add control-flow piece to '}' inTed Kremenek2009-05-151-16/+36
| | | | | | | loop body when generating 'Looping back to the head of the loop' diagnostics. llvm-svn: 71829
* Instantiate return statements.Anders Carlsson2009-05-152-1/+15
| | | | llvm-svn: 71825
* Fixup debug information for the location information for __blockMike Stump2009-05-151-2/+4
| | | | | | | | | | | | | | | | | | | | variables. For this to work, the backend needs to handle more complex forms for locations. A typical utterance would be: %forwarding = getelementptr %0* %use_by_ref, i32 0, i32 1 ; <i8**> [#uses=1] %0 = load i8** %forwarding ; <i8*> [#uses=1] %1 = bitcast i8* %0 to %0* ; <%0*> [#uses=1] %x = getelementptr %0* %1, i32 0, i32 4 ; <i32*> [#uses=1] %2 = bitcast i32* %x to { }* ; <{ }*> [#uses=1] call void @llvm.dbg.declare({ }* %2, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable to { }*)) Presently when selection finds something it doesn't understand, it just avoids generating any information, which is safe, just incomplete. Radar 6867696 llvm-svn: 71824
* Add NullStmt::Clone and use itAnders Carlsson2009-05-152-1/+5
| | | | llvm-svn: 71823
* Instantiate goto and label statements. (Very useful, I know)Anders Carlsson2009-05-151-0/+18
| | | | llvm-svn: 71822
* Implement template instantiation for DeclStmtDouglas Gregor2009-05-153-2/+34
| | | | llvm-svn: 71818
* Don't warn if result/argument type of an implemented Fariborz Jahanian2009-05-143-2/+15
| | | | | | | method is a qualified id which conforms to the matching type of its method declaration. llvm-svn: 71817
* Template instantiation for the NULL statement. Lame, I knowDouglas Gregor2009-05-141-0/+5
| | | | llvm-svn: 71816
* Introduce basic support for instantiating the definitions of memberDouglas Gregor2009-05-145-15/+121
| | | | | | | functions of class templates. Only compound statements and expression statements are currently implemented. llvm-svn: 71814
* Check that the function being overridden is virtual.Anders Carlsson2009-05-144-6/+8
| | | | llvm-svn: 71802
* Improvements to the FunctionDecl getters/setters.Anders Carlsson2009-05-144-7/+7
| | | | llvm-svn: 71800
* Introduce a stack of instantiation scopes that are used to store the mapping ↵Douglas Gregor2009-05-144-1/+87
| | | | | | from variable declarations that occur within templates to their instantiated counterparts llvm-svn: 71799
* Fix <rdar://problem/6859457> [NSData dataWithBytesNoCopy] does not return a ↵Ted Kremenek2009-05-141-0/+9
| | | | | | retained object. llvm-svn: 71797
* Link FunctionDecls instantiated from the member functions of a classDouglas Gregor2009-05-143-6/+24
| | | | | | | | template to the FunctionDecls from which they were instantiated. This is a necessary first step to support instantiation of the definitions of such functions, but by itself does essentially nothing. llvm-svn: 71792
* updated comments.Fariborz Jahanian2009-05-141-3/+2
| | | | llvm-svn: 71790
* Adds recognition of sentinel attribute on block declarations.Fariborz Jahanian2009-05-142-3/+37
| | | | llvm-svn: 71788
* Better diagnostics for covariance when checking overriding return types.Anders Carlsson2009-05-141-6/+65
| | | | llvm-svn: 71786
* When there are any member new operators, global versions aren't looked up at ↵Sebastian Redl2009-05-141-2/+0
| | | | | | all. llvm-svn: 71780
* Diagnose missing sentinel argument on a funciton callFariborz Jahanian2009-05-141-17/+39
| | | | | | with sentinel attribute. llvm-svn: 71778
* Skip the asm prefix when storing the name in block info.Daniel Dunbar2009-05-141-2/+6
| | | | | | | | | | | - Otherwise we emit internal names with embedded '\01' characters, which confuses some tools. - Ideally all the code which wants to get a "display name" for the given function should follow one code path, but this should be a monotonic improvement for now. llvm-svn: 71774
OpenPOWER on IntegriCloud