1*ba874ad8SJake Ehrlich // RUN: %clang_cc1 -triple x86_64-linux-unknown -emit-llvm %s -o - | FileCheck %s 2*ba874ad8SJake Ehrlich 3*ba874ad8SJake Ehrlich #pragma GCC visibility push(hidden) 4*ba874ad8SJake Ehrlich 5*ba874ad8SJake Ehrlich struct Base { 6*ba874ad8SJake Ehrlich virtual ~Base() = default; 7*ba874ad8SJake Ehrlich virtual void* Alloc() = 0; 8*ba874ad8SJake Ehrlich }; 9*ba874ad8SJake Ehrlich 10*ba874ad8SJake Ehrlich class Child : public Base { 11*ba874ad8SJake Ehrlich public: 12*ba874ad8SJake Ehrlich Child() = default; 13*ba874ad8SJake Ehrlich void* Alloc(); 14*ba874ad8SJake Ehrlich }; 15*ba874ad8SJake Ehrlich test()16*ba874ad8SJake Ehrlichvoid test() { 17*ba874ad8SJake Ehrlich Child x; 18*ba874ad8SJake Ehrlich } 19*ba874ad8SJake Ehrlich 20*ba874ad8SJake Ehrlich // CHECK: @_ZTV5Child = external hidden unnamed_addr constant 21