diff options
| author | Douglas Gregor <dgregor@apple.com> | 2011-12-22 19:44:59 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2011-12-22 19:44:59 +0000 |
| commit | 0475cd88c95a6e87c7530f93085e5cbd66c16832 (patch) | |
| tree | 3926cb397af46d772378260081f83c62b9897396 /clang/test | |
| parent | 292dc080e06ca46097f300968138140c620faf55 (diff) | |
| download | bcm5719-llvm-0475cd88c95a6e87c7530f93085e5cbd66c16832.tar.gz bcm5719-llvm-0475cd88c95a6e87c7530f93085e5cbd66c16832.zip | |
If we end up merging an Objective-C class with an existing Objective-C
class that comes from a different module file, make sure that we load
all of the pending declarations for the original declaration.
llvm-svn: 147168
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Modules/Inputs/module.map | 4 | ||||
| -rw-r--r-- | clang/test/Modules/Inputs/redecl-merge-bottom.h | 3 | ||||
| -rw-r--r-- | clang/test/Modules/Inputs/redecl-merge-left-left.h | 5 | ||||
| -rw-r--r-- | clang/test/Modules/Inputs/redecl-merge-right.h | 6 | ||||
| -rw-r--r-- | clang/test/Modules/redecl-merge.m | 8 |
5 files changed, 26 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/module.map b/clang/test/Modules/Inputs/module.map index 13a44eb6a76..640aa3c1f63 100644 --- a/clang/test/Modules/Inputs/module.map +++ b/clang/test/Modules/Inputs/module.map @@ -51,6 +51,10 @@ module redecl_merge_left { header "redecl-merge-left.h" export * } +module redecl_merge_left_left { + header "redecl-merge-left-left.h" + export * +} module redecl_merge_right { header "redecl-merge-right.h" export * diff --git a/clang/test/Modules/Inputs/redecl-merge-bottom.h b/clang/test/Modules/Inputs/redecl-merge-bottom.h index 1c59c1f2234..ce4368d08a0 100644 --- a/clang/test/Modules/Inputs/redecl-merge-bottom.h +++ b/clang/test/Modules/Inputs/redecl-merge-bottom.h @@ -1,4 +1,7 @@ __import_module__ redecl_merge_left; + +@class C4; +@class C4; __import_module__ redecl_merge_right; @class B; diff --git a/clang/test/Modules/Inputs/redecl-merge-left-left.h b/clang/test/Modules/Inputs/redecl-merge-left-left.h new file mode 100644 index 00000000000..0d7fd6a5145 --- /dev/null +++ b/clang/test/Modules/Inputs/redecl-merge-left-left.h @@ -0,0 +1,5 @@ +__import_module__ redecl_merge_left; + +@class C4; +void accept_a_C4(C4*); + diff --git a/clang/test/Modules/Inputs/redecl-merge-right.h b/clang/test/Modules/Inputs/redecl-merge-right.h index f5e4eb8ee44..f86f1103eea 100644 --- a/clang/test/Modules/Inputs/redecl-merge-right.h +++ b/clang/test/Modules/Inputs/redecl-merge-right.h @@ -18,6 +18,12 @@ C2 *get_a_C2(void); @class C3; C3 *get_a_C3(void); +@class C4; +@class C4; +@class C4; +@class C4; +C4 *get_a_C4(void); + @class Explicit; int *explicit_func(void); diff --git a/clang/test/Modules/redecl-merge.m b/clang/test/Modules/redecl-merge.m index 7b06adcce43..930e8df6b87 100644 --- a/clang/test/Modules/redecl-merge.m +++ b/clang/test/Modules/redecl-merge.m @@ -55,6 +55,14 @@ void test_C3(C3 *c3) { accept_a_C3(c3); } +C4 *global_C4; +__import_module__ redecl_merge_left_left; + +void test_C4(C4 *c4) { + global_C4 = c4 = get_a_C4(); + accept_a_C4(c4); +} + __import_module__ redecl_merge_bottom; @implementation B |

