diff options
author | Nico Weber <nicolasweber@gmx.de> | 2014-12-01 17:48:04 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2014-12-01 17:48:04 +0000 |
commit | 4af55faa19ab59b0b8ba982f9dfa0059347eb034 (patch) | |
tree | b1a87215bcfdf950f467e409c3db0a7ece38614e /clang/test/CodeGenCXX/virtual-operator-call.cpp | |
parent | 3024b5535c4a54e981e121585110386af6495500 (diff) | |
download | bcm5719-llvm-4af55faa19ab59b0b8ba982f9dfa0059347eb034.tar.gz bcm5719-llvm-4af55faa19ab59b0b8ba982f9dfa0059347eb034.zip |
Add a test for devirtualization of virtual operator calls.
There was no test coverage for this before: Modifiying
EmitCXXOperatorMemberCallee() to not call CanDevirtualizeMemberFunctionCall()
didn't make any test fail.
llvm-svn: 223056
Diffstat (limited to 'clang/test/CodeGenCXX/virtual-operator-call.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/virtual-operator-call.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/clang/test/CodeGenCXX/virtual-operator-call.cpp b/clang/test/CodeGenCXX/virtual-operator-call.cpp index 72d49c23009..727c8e140fd 100644 --- a/clang/test/CodeGenCXX/virtual-operator-call.cpp +++ b/clang/test/CodeGenCXX/virtual-operator-call.cpp @@ -1,10 +1,13 @@ // RUN: %clang_cc1 %s -triple i386-unknown-unknown -emit-llvm -o - | FileCheck %s struct A { - virtual int operator-() = 0; + virtual int operator-(); }; -void f(A *a) { +void f(A a, A *ap) { + // CHECK: call i32 @_ZN1AngEv(%struct.A* %a) + -a; + // CHECK: call i32 % - -*a; + -*ap; } |