diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-09-12 18:37:38 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-09-12 18:37:38 +0000 |
commit | e389585f8a40f80004d3b98b99f3980305ef78a0 (patch) | |
tree | dc6db711766f25c9365a0d2fa9b1376e937594bc /test/Modules/module-private.cpp | |
parent | 773d847fbe93479f7499e2076c9d8d99870c5fb0 (diff) |
Diagnose attempt to mark function-local declarations as __module_private__.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139519 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Modules/module-private.cpp')
-rw-r--r-- | test/Modules/module-private.cpp | 10 |
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 |