CodeGen: Mark functions used in vtables as unnamed_addr.
This marks virtual function declarations, as well as runtime library functions __cxa_pure_virtual, __cxa_deleted_virtual and _purecall, as unnamed_addr. This will allow us to correctly form relative references to them from vtables in the relative vtable ABI. Differential Revision: http://reviews.llvm.org/D18071 llvm-svn: 263464
This commit is contained in:
14
clang/test/CodeGenCXX/virtual-function-attrs.cpp
Normal file
14
clang/test/CodeGenCXX/virtual-function-attrs.cpp
Normal file
@@ -0,0 +1,14 @@
|
||||
// RUN: %clang_cc1 %s -triple %itanium_abi_triple -std=c++11 -emit-llvm -o - | FileCheck %s
|
||||
|
||||
class A {
|
||||
virtual void f();
|
||||
virtual void g();
|
||||
virtual ~A();
|
||||
};
|
||||
|
||||
void A::f() {}
|
||||
|
||||
// CHECK: define void @_ZN1A1fEv({{.*}}) unnamed_addr
|
||||
// CHECK: declare void @_ZN1A1gEv({{.*}}) unnamed_addr
|
||||
// CHECK: declare void @_ZN1AD1Ev({{.*}}) unnamed_addr
|
||||
// CHECK: declare void @_ZN1AD0Ev({{.*}}) unnamed_addr
|
||||
Reference in New Issue
Block a user