summaryrefslogtreecommitdiffstats
path: root/clang/test/ASTMerge
Commit message (Collapse)AuthorAgeFilesLines
* Fix two thinkos and add a test for importing the AST of a categoryDouglas Gregor2010-12-083-1/+31
| | | | | | implementation. llvm-svn: 121263
* Implement AST import for Objective-C property implementationsDouglas Gregor2010-12-073-1/+44
| | | | | | (@synthesize and @dynamic). llvm-svn: 121159
* Implement ASTImporter support for Objective-C category implementations.Douglas Gregor2010-12-072-0/+17
| | | | llvm-svn: 121139
* Extern the ASTImporter to import @implementation declarations.Douglas Gregor2010-12-073-1/+46
| | | | llvm-svn: 121097
* Implement AST import support for class template specializations.Douglas Gregor2010-12-013-0/+37
| | | | llvm-svn: 120523
* Implement basic AST importing and merging support for class templateDouglas Gregor2010-11-303-0/+56
| | | | | | declarations. llvm-svn: 120448
* Read/write to/from PCH DeclarationNameLocs, DeclarationNameInfos and ↵Argyrios Kyrtzidis2010-10-151-2/+0
| | | | | | QualifierInfos (rdar://8513756). llvm-svn: 116598
* Try to disable this again.Eric Christopher2010-10-081-3/+5
| | | | llvm-svn: 116094
* Disable this test temporarily in an attempt to green the buildbots.Eric Christopher2010-10-081-3/+3
| | | | llvm-svn: 116082
* Don't add an imported function into its lexical context until *after*Douglas Gregor2010-10-012-0/+8
| | | | | | | we've set all of its parameters. Fixes <rdar://problem/8499598>; thanks to Sean for the diagnosis. llvm-svn: 115387
* Hack in some really terrible C++ record PCH support that I need right now.John McCall2010-06-033-0/+25
| | | | | | | | This is required in order to test: The ASTImporter should set base classes after formally entering the definition. llvm-svn: 105401
* Instead of counting totally diagnostics, split the count into a countChris Lattner2010-04-078-8/+8
| | | | | | | | | | | | | | | of errors and warnings. This allows us to emit something like this: 2 warnings and 1 error generated. instead of: 3 diagnostics generated. This also stops counting 'notes' because they are just follow-on information about the previous diag, not a diagnostic in themselves. llvm-svn: 100675
* Add test for AST importing of C++ namespaces, missing from a prior commitDouglas Gregor2010-02-243-0/+40
| | | | llvm-svn: 97062
* AST import for CStyleCastExpr. With this, we can import Cocoa.h into an ↵Douglas Gregor2010-02-192-2/+4
| | | | | | empty context llvm-svn: 96648
* AST import for sizeof and alignof expressionsDouglas Gregor2010-02-192-2/+4
| | | | llvm-svn: 96647
* AST import for DeclRefExprsDouglas Gregor2010-02-192-2/+4
| | | | llvm-svn: 96646
* AST import of parenthesized expressions, unary operators, binaryDouglas Gregor2010-02-192-2/+6
| | | | | | operators, and compound assignment operators. llvm-svn: 96643
* AST import for character literalsDouglas Gregor2010-02-183-0/+14
| | | | llvm-svn: 96557
* AST import for forward declarations of Objective-C protocolsDouglas Gregor2010-02-182-0/+12
| | | | llvm-svn: 96555
* Implement import of forward declarations of Objective-C classesDouglas Gregor2010-02-182-0/+10
| | | | llvm-svn: 96554
* AST import of Objective-C categories.Douglas Gregor2010-02-183-0/+61
| | | | llvm-svn: 96551
* Implement AST merging for Objective-C properties.Douglas Gregor2010-02-173-0/+34
| | | | llvm-svn: 96483
* AST import for Objective-C protocolsDouglas Gregor2010-02-173-1/+49
| | | | llvm-svn: 96478
* Implement AST importing and checking for Objective-C method declarations.Douglas Gregor2010-02-173-1/+54
| | | | llvm-svn: 96442
* Implement AST importing of Objective-C instance variables. Douglas Gregor2010-02-173-6/+43
| | | | | | Check superclasses when merging two Objective-C @interfaces. llvm-svn: 96420
* Skeleton for importing Objective-C classesDouglas Gregor2010-02-163-0/+20
| | | | llvm-svn: 96306
* Cope with anonymous tags defined within declarators by structurallyDouglas Gregor2010-02-157-1/+32
| | | | | | | | | | | | | | | | | | | | comparing their types under the assumption that they are equivalent, rather than importing the types and then checking for compatibility. A few minor tweaks here: - Teach structural matching to handle compatibility between function types with prototypes and those without prototypes. - Teach structural matching that an incomplete record decl is the same as any other record decl with the same name. - Keep track of pairs of declarations that we have already checked (but failed to find as structurally matching), so we don't emit diagnostics repeatedly. - When importing a typedef of an anonymous tag, be sure to link the imported tag type to its typedef. With these changes, we survive a repeated import of <stdlib.h> and <stdio.h>. Alas, the ASTNodeImporter is getting a little grotty. llvm-svn: 96298
* Reimplement the structural-equality checks used to determine whetherDouglas Gregor2010-02-153-4/+19
| | | | | | | | | | | | | | two types in different AST contexts are equivalent. Rather than transforming the type from one context into the other context, we perform a deep structural comparison of the types. This change addresses a serious problem with recursive data types like struct ListNode { int value; struct ListNode *Next; } xList; llvm-svn: 96278
* Funnel changes to the ImportedDecls list in the ASTImporter through aDouglas Gregor2010-02-122-0/+13
| | | | | | | single Imported function, in preparation for fixing a serious design flaw. llvm-svn: 96044
* Implement AST importing and merging for enumeration types andDouglas Gregor2010-02-123-0/+94
| | | | | | enumerators, along with ImplicitCastExprs to make it work. llvm-svn: 96024
* Handle AST merges of incomplete class types. Douglas Gregor2010-02-122-0/+19
| | | | llvm-svn: 95941
* When AST merging for record declarations fails, warn about theDouglas Gregor2010-02-113-3/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | incompatibility and show where the structural differences are. For example: struct1.c:36:8: warning: type 'struct S7' has incompatible definitions in different translation units struct S7 { int i : 8; unsigned j : 8; } x7; ^ struct1.c:36:33: note: bit-field 'j' with type 'unsigned int' and length 8 here struct S7 { int i : 8; unsigned j : 8; } x7; ^ struct2.c:33:33: note: bit-field 'j' with type 'unsigned int' and length 16 here struct S7 { int i : 8; unsigned j : 16; } x7; ^ There are a few changes to make this work: - ASTImporter now has only a single Diagnostic object, not multiple diagnostic objects. Otherwise, having a warning/error printed via one Diagnostic and its note printed on the other Diagnostic could cause the note to be suppressed. - Implemented import functionality for IntegerLiteral (along with general support for statements and expressions) llvm-svn: 95900
* Add missing test cases for AST merging of structures.Douglas Gregor2010-02-113-0/+36
| | | | llvm-svn: 95886
* Implement basic support for merging function declarations acrossDouglas Gregor2010-02-103-0/+21
| | | | | | translation units. llvm-svn: 95794
* Implement AST importing and merging for typedefs. As part of this, provide a ↵Douglas Gregor2010-02-104-0/+16
| | | | | | lame implementation for importing TypeSourceInfos. llvm-svn: 95783
* Teach AST merging that variables with incomplete array types can beDouglas Gregor2010-02-103-0/+10
| | | | | | | | merged with variables of constant array types. Also, make sure that we call DiagnosticClient's BeginSourceFile/EndSourceFile, so that it has a LangOptions to work with. llvm-svn: 95782
* Add missing header fileDouglas Gregor2010-02-101-0/+1
| | | | llvm-svn: 95751
* Implement basic support for importing source locations from one ASTDouglas Gregor2010-02-103-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | into another AST, including their include history. Here's an example error that involves a conflict merging a variable with different types in two translation units (diagnosed in the third AST context into which everything is merged). /Volumes/Data/dgregor/Projects/llvm/tools/clang/test/ASTMerge/Inputs/var2.c:3:5: error: external variable 'x2' declared with incompatible types in different translation units ('int' vs. 'double') int x2; ^ In file included from /Volumes/Data/dgregor/Projects/llvm/tools/clang/test/ASTMerge/Inputs/var1.c:3: /Volumes/Data/dgregor/Projects/llvm/tools/clang/test/ASTMerge/Inputs/var1.h:1:8: note: declared here with type 'double' double x2; ^ Although we maintain include history, we do not maintain macro instantiation history across a merge. Instead, we map down to the spelling location (for now!). llvm-svn: 95732
* Add in the LIT magic to avoid running AST merge test inputs asDouglas Gregor2010-02-093-2/+1
| | | | | | separate tests. Thanks, Daniel! llvm-svn: 95705
* Hook up the diagnostics-argument printer when merging AST files, soDouglas Gregor2010-02-091-1/+1
| | | | | | | | | | | that we get readable diagnostics such as: error: external variable 'x1' declared with incompatible types in different translation units ('double *' vs. 'float **') However, there is no translation of source locations, yet. llvm-svn: 95704
* Introduce a testbed for merging multiple ASTs into a single ASTDouglas Gregor2010-02-093-0/+11
context with the AST importer. WIP, still useless but at least it has a test. llvm-svn: 95683
OpenPOWER on IntegriCloud