summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-07-08 21:49:31 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-07-08 21:49:31 +0000
commitb1d8ea4635eea320432e8dfa175c33acd976d2b0 (patch)
treecd7de416b5a8e724620741ebf54ea3486beda870 /clang/test/Modules
parent97295ea7dd3d574efafff4405fd56d782aa1fd70 (diff)
downloadbcm5719-llvm-b1d8ea4635eea320432e8dfa175c33acd976d2b0.tar.gz
bcm5719-llvm-b1d8ea4635eea320432e8dfa175c33acd976d2b0.zip
[modules] Fix merging support for forward-declared enums with fixed underlying types. A visible declaration is enough to make the type complete, but not enough to make the definition visible.
llvm-svn: 241743
Diffstat (limited to 'clang/test/Modules')
-rw-r--r--clang/test/Modules/Inputs/submodules-merge-defs/defs.h3
-rw-r--r--clang/test/Modules/submodules-merge-defs.cpp5
2 files changed, 8 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/submodules-merge-defs/defs.h b/clang/test/Modules/Inputs/submodules-merge-defs/defs.h
index bda0567c93a..07dfac7ee65 100644
--- a/clang/test/Modules/Inputs/submodules-merge-defs/defs.h
+++ b/clang/test/Modules/Inputs/submodules-merge-defs/defs.h
@@ -94,3 +94,6 @@ namespace MergeFunctionTemplateSpecializations {
};
using xiq = X<int>::Q<int>;
}
+
+enum ScopedEnum : int;
+enum ScopedEnum : int { a, b, c };
diff --git a/clang/test/Modules/submodules-merge-defs.cpp b/clang/test/Modules/submodules-merge-defs.cpp
index 92c784440b9..016b8a8f47a 100644
--- a/clang/test/Modules/submodules-merge-defs.cpp
+++ b/clang/test/Modules/submodules-merge-defs.cpp
@@ -69,6 +69,11 @@ J<> pre_j; // expected-error {{declaration of 'J' must be imported}}
#endif
// expected-note@defs.h:51 +{{here}}
+ScopedEnum pre_scopedenum; // expected-error {{must be imported}} expected-error {{must use 'enum'}}
+// expected-note@defs.h:99 {{here}}
+enum ScopedEnum : int;
+ScopedEnum pre_scopedenum_declared; // ok
+
// Make definitions from second module visible.
#ifdef TEXTUAL
#include "import-and-redefine.h"
OpenPOWER on IntegriCloud