From 2dbe4043e8f54578bd21e766c99986ac464516ec Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 4 Nov 2015 19:26:32 +0000 Subject: [modules] Generalize the workaround for multiple ambiguous definitions of internal linkage entities in different modules from r250884 to apply to all names, not just function names. This is really awkward: we don't want to merge internal-linkage symbols from separate modules, because they might not actually be defining the same entity. But we don't want to reject programs that use such an ambiguous symbol if those internal-linkage symbols are in fact equivalent. For now, we're resolving the ambiguity by picking one of the equivalent definitions as an extension. llvm-svn: 252063 --- clang/test/Modules/libstdcxx-ambiguous-internal.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'clang/test/Modules/libstdcxx-ambiguous-internal.cpp') diff --git a/clang/test/Modules/libstdcxx-ambiguous-internal.cpp b/clang/test/Modules/libstdcxx-ambiguous-internal.cpp index 966b9c97681..784b442eab4 100644 --- a/clang/test/Modules/libstdcxx-ambiguous-internal.cpp +++ b/clang/test/Modules/libstdcxx-ambiguous-internal.cpp @@ -3,5 +3,11 @@ // RUN: %clang_cc1 -x c++ -std=c++11 -fmodules -emit-module -fmodule-name=std -fmodules-cache-path=%t %S/Inputs/libstdcxx-ambiguous-internal/module.modulemap -fmodules-local-submodule-visibility -DAMBIGUOUS 2>&1| FileCheck %s // CHECK-NOT: error -// CHECK: warning: ambiguous use of internal linkage function 'f' defined in multiple modules +// CHECK: warning: ambiguous use of internal linkage declaration 'f' defined in multiple modules +// CHECK: note: declared here in module 'std.C' +// CHECK: note: declared here in module 'std.B' +// CHECK-NOT: error +// CHECK: warning: ambiguous use of internal linkage declaration 'n' defined in multiple modules +// CHECK: note: declared here in module 'std.C' +// CHECK: note: declared here in module 'std.B' // CHECK-NOT: error -- cgit v1.2.3