| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
implementation.
llvm-svn: 121263
|
|
|
|
|
|
| |
(@synthesize and @dynamic).
llvm-svn: 121159
|
|
|
|
| |
llvm-svn: 121139
|
|
|
|
| |
llvm-svn: 121097
|
|
|
|
| |
llvm-svn: 120523
|
|
|
|
|
|
| |
declarations.
llvm-svn: 120448
|
|
|
|
|
|
| |
QualifierInfos (rdar://8513756).
llvm-svn: 116598
|
|
|
|
| |
llvm-svn: 116094
|
|
|
|
| |
llvm-svn: 116082
|
|
|
|
|
|
|
| |
we've set all of its parameters. Fixes <rdar://problem/8499598>;
thanks to Sean for the diagnosis.
llvm-svn: 115387
|
|
|
|
|
|
|
|
| |
This is required in order to test:
The ASTImporter should set base classes after formally entering the definition.
llvm-svn: 105401
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 97062
|
|
|
|
|
|
| |
empty context
llvm-svn: 96648
|
|
|
|
| |
llvm-svn: 96647
|
|
|
|
| |
llvm-svn: 96646
|
|
|
|
|
|
| |
operators, and compound assignment operators.
llvm-svn: 96643
|
|
|
|
| |
llvm-svn: 96557
|
|
|
|
| |
llvm-svn: 96555
|
|
|
|
| |
llvm-svn: 96554
|
|
|
|
| |
llvm-svn: 96551
|
|
|
|
| |
llvm-svn: 96483
|
|
|
|
| |
llvm-svn: 96478
|
|
|
|
| |
llvm-svn: 96442
|
|
|
|
|
|
| |
Check superclasses when merging two Objective-C @interfaces.
llvm-svn: 96420
|
|
|
|
| |
llvm-svn: 96306
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
single Imported function, in preparation for fixing a serious design
flaw.
llvm-svn: 96044
|
|
|
|
|
|
| |
enumerators, along with ImplicitCastExprs to make it work.
llvm-svn: 96024
|
|
|
|
| |
llvm-svn: 95941
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 95886
|
|
|
|
|
|
| |
translation units.
llvm-svn: 95794
|
|
|
|
|
|
| |
lame implementation for importing TypeSourceInfos.
llvm-svn: 95783
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 95751
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
separate tests. Thanks, Daniel!
llvm-svn: 95705
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
context with the AST importer. WIP, still useless but at least it has
a test.
llvm-svn: 95683
|