blob: 88ebfa9684a5970162b61c9d0a3b1f921caeff13 [file] [log] [blame]
Teresa Johnson8749d8042015-07-06 16:23:00 +00001// RUN: %clang_cc1 -O2 -fvisibility hidden -std=c++11 -emit-llvm -o - -triple x86_64-apple-darwin10 %s | FileCheck %s
2
3// Ensure that available_externally functions eliminated at -O2 are now
4// declarations, and are not emitted as hidden with -fvisibility=hidden,
5// but rather with default visibility.
6struct Filter {
7 virtual void Foo();
8 int a;
9};
10
11class Message{};
12class Sender {
13 public:
14 virtual bool Send(Message* msg) = 0;
15
16 protected:
17 virtual ~Sender() {}
18};
19
20// CHECK: declare zeroext i1 @_ZThn16_N17SyncMessageFilter4SendEP7Message
21class SyncMessageFilter : public Filter, public Sender {
22 public:
23 bool Send(Message* message) override;
24};
25
26class TestSyncMessageFilter : public SyncMessageFilter {
27};
28
29int main() {
Piotr Padlewskid679d7e2015-09-15 00:37:06 +000030 TestSyncMessageFilter *f = new TestSyncMessageFilter;
Teresa Johnson8749d8042015-07-06 16:23:00 +000031 f->Send(new Message);
32}