summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/virtual-operator-call.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2014-12-01 17:48:04 +0000
committerNico Weber <nicolasweber@gmx.de>2014-12-01 17:48:04 +0000
commit4af55faa19ab59b0b8ba982f9dfa0059347eb034 (patch)
treeb1a87215bcfdf950f467e409c3db0a7ece38614e /clang/test/CodeGenCXX/virtual-operator-call.cpp
parent3024b5535c4a54e981e121585110386af6495500 (diff)
downloadbcm5719-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.cpp9
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;
}
OpenPOWER on IntegriCloud