From c192b3dcffd5e672a2b2e1730e2440febb4fb192 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sun, 5 Jul 2015 14:23:59 +0000 Subject: Vendor import of clang trunk r241361: https://llvm.org/svn/llvm-project/cfe/trunk@241361 --- test/Modules/merge-class-definition-visibility.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'test/Modules/merge-class-definition-visibility.cpp') diff --git a/test/Modules/merge-class-definition-visibility.cpp b/test/Modules/merge-class-definition-visibility.cpp index e8602c0d5489d..ac4c951584498 100644 --- a/test/Modules/merge-class-definition-visibility.cpp +++ b/test/Modules/merge-class-definition-visibility.cpp @@ -1,15 +1,23 @@ // RUN: rm -rf %t // RUN: %clang_cc1 -fmodules -fmodule-map-file=%S/Inputs/merge-class-definition-visibility/modmap \ // RUN: -I%S/Inputs/merge-class-definition-visibility \ -// RUN: -fmodules-cache-path=%t %s -verify +// RUN: -fmodules-cache-path=%t %s -verify \ +// RUN: -fmodules-local-submodule-visibility // expected-no-diagnostics #include "c.h" template struct X { T t; }; typedef X XA; +struct B; -#include "d.h" -// Ensure that this triggers the import of the second definition from d.h, +#include "e.h" +// Ensure that this triggers the import of the second definition from e.h, // which is necessary to make the definition of A visible in the template // instantiation. XA xa; + +// Ensure that we make the definition of B visible. We made the parse-merged +// definition from e.h visible, which makes the definition from d.h visible, +// and that definition was merged into the canonical definition from b.h, +// so that becomes visible, and we have a visible definition. +B b; -- cgit v1.2.3