From 7b8e4bc83f161fccecf6a18c3925901e0e140274 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Fri, 2 Dec 2011 15:45:10 +0000 Subject: 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 --- clang/test/Modules/submodules-preprocess.cpp | 54 +++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 4 deletions(-) (limited to 'clang/test/Modules/submodules-preprocess.cpp') 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 vi; -remove_reference::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 vf; -remove_reference::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 -- cgit v1.2.3