summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/submodules-preprocess.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-12-02 15:45:10 +0000
committerDouglas Gregor <dgregor@apple.com>2011-12-02 15:45:10 +0000
commit7b8e4bc83f161fccecf6a18c3925901e0e140274 (patch)
treeeb8da10346d2eddff0628f9f2b0449daf32d7162 /clang/test/Modules/submodules-preprocess.cpp
parent1280eb1d0684e44e045c8f984b2e16a2443ee10c (diff)
downloadbcm5719-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.cpp54
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
OpenPOWER on IntegriCloud