From d0fe317e0c94b4416c84ece3f87bbdad46407188 Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Tue, 25 Mar 2014 18:33:27 +0000 Subject: MS ABI: Mark direct virtual bases as visted when building vtable paths Fixes PR19240. In retrospect, this is a fairly obvious bug. :) llvm-svn: 204744 --- .../microsoft-abi-vtables-virtual-inheritance.cpp | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp') diff --git a/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp b/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp index 2788965d46a..634f583e735 100644 --- a/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp +++ b/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp @@ -659,3 +659,26 @@ C c; // MANGLING-DAG: @"\01??_7C@pr17748@@6BA@1@@" // MANGLING-DAG: @"\01??_7C@pr17748@@6BB@1@@" } + +namespace pr19240 { +struct A { + virtual void c(); +}; + +struct B : virtual A { + virtual void c(); +}; + +struct C { }; + +struct D : virtual A, virtual C, B {}; + +D obj; + +// Each MDC only has one vftable. + +// MANGLING-DAG: @"\01??_7D@pr19240@@6B@" +// MANGLING-DAG: @"\01??_7A@pr19240@@6B@" +// MANGLING-DAG: @"\01??_7B@pr19240@@6B@" + +} -- cgit v1.2.3