aboutsummaryrefslogtreecommitdiff
path: root/test/Modules/module-private.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/Modules/module-private.cpp')
-rw-r--r--test/Modules/module-private.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/test/Modules/module-private.cpp b/test/Modules/module-private.cpp
index 949d795865..33ec32048a 100644
--- a/test/Modules/module-private.cpp
+++ b/test/Modules/module-private.cpp
@@ -119,4 +119,14 @@ __module_private__ struct public_class<float> { }; // expected-error{{template s
template<typename T>
__module_private__ struct public_class<T *> { }; // expected-error{{partial specialization cannot be declared __module_private__}}
+// Check for attempts to make parameters and variables with automatic
+// storage module-private.
+
+void local_var_private(__module_private__ int param) { // expected-error{{parameter 'param' cannot be declared __module_private__}}
+ __module_private__ struct Local { int x, y; } local; //expected-error{{local variable 'local' cannot be declared __module_private__}}
+
+ __module_private__ struct OtherLocal { int x; }; // expected-error{{local struct cannot be declared __module_private__}}
+
+ typedef __module_private__ int local_typedef; // expected-error{{typedef 'local_typedef' cannot be declared __module_private__}}
+}
#endif