diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-12-02 15:45:10 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-12-02 15:45:10 +0000 |
commit | 7b8e4bc83f161fccecf6a18c3925901e0e140274 (patch) | |
tree | eb8da10346d2eddff0628f9f2b0449daf32d7162 /clang/test/Modules/submodules-preprocess.cpp | |
parent | 1280eb1d0684e44e045c8f984b2e16a2443ee10c (diff) | |
download | bcm5719-llvm-7b8e4bc83f161fccecf6a18c3925901e0e140274.tar.gz bcm5719-llvm-7b8e4bc83f161fccecf6a18c3925901e0e140274.zip |
Implement name hiding for macro definitions within modules, such that
only the macro definitions from visible (sub)modules will actually be
visible. This provides the same behavior for macros that r145640
provided for declarations.
llvm-svn: 145683
Diffstat (limited to 'clang/test/Modules/submodules-preprocess.cpp')
-rw-r--r-- | clang/test/Modules/submodules-preprocess.cpp | 54 |
1 files changed, 50 insertions, 4 deletions
diff --git a/clang/test/Modules/submodules-preprocess.cpp b/clang/test/Modules/submodules-preprocess.cpp index 1f0f37759c5..ed51b4543f8 100644 --- a/clang/test/Modules/submodules-preprocess.cpp +++ b/clang/test/Modules/submodules-preprocess.cpp @@ -3,12 +3,58 @@ __import_module__ std.vector; -vector<int> vi; -remove_reference<int&>::type *int_ptr = 0; +#ifndef HAVE_VECTOR +# error HAVE_VECTOR macro is not available (but should be) +#endif + +#ifdef HAVE_TYPE_TRAITS +# error HAVE_TYPE_TRAITS_MAP macro is available (but shouldn't be) +#endif + +#ifdef HAVE_HASH_MAP +# error HAVE_HASH_MAP macro is available (but shouldn't be) +#endif __import_module__ std.typetraits; // expected-error{{no submodule named 'typetraits' in module 'std'; did you mean 'type_traits'?}} -vector<float> vf; -remove_reference<int&>::type *int_ptr2 = 0; +#ifndef HAVE_VECTOR +# error HAVE_VECTOR macro is not available (but should be) +#endif + +#ifndef HAVE_TYPE_TRAITS +# error HAVE_TYPE_TRAITS_MAP macro is not available (but should be) +#endif + +#ifdef HAVE_HASH_MAP +# error HAVE_HASH_MAP macro is available (but shouldn't be) +#endif __import_module__ std.vector.compare; // expected-error{{no submodule named 'compare' in module 'std.vector'}} + +__import_module__ std; // import everything in 'std' + +#ifndef HAVE_VECTOR +# error HAVE_VECTOR macro is not available (but should be) +#endif + +#ifndef HAVE_TYPE_TRAITS +# error HAVE_TYPE_TRAITS_MAP macro is not available (but should be) +#endif + +#ifdef HAVE_HASH_MAP +# error HAVE_HASH_MAP macro is available (but shouldn't be) +#endif + +__import_module__ std.hash_map; + +#ifndef HAVE_VECTOR +# error HAVE_VECTOR macro is not available (but should be) +#endif + +#ifndef HAVE_TYPE_TRAITS +# error HAVE_TYPE_TRAITS_MAP macro is not available (but should be) +#endif + +#ifndef HAVE_HASH_MAP +# error HAVE_HASH_MAP macro is not available (but should be) +#endif |