// RUN: %clang_cc1 -O2 -fvisibility hidden -std=c++11 -emit-llvm -o - -triple x86_64-apple-darwin10 %s | FileCheck %s

// Ensure that available_externally functions eliminated at -O2 are now
// declarations, and are not emitted as hidden with -fvisibility=hidden,
// but rather with default visibility.
struct Filter {
  virtual void Foo();
  int a;
};

class Message{};
class Sender {
 public:
  virtual bool Send(Message* msg) = 0;

 protected:
  virtual ~Sender() {}
};

// CHECK: declare zeroext i1 @_ZThn16_N17SyncMessageFilter4SendEP7Message
class SyncMessageFilter : public Filter, public Sender {
 public:
  bool Send(Message* message) override;
};

class TestSyncMessageFilter : public SyncMessageFilter {
};

int main() {
  TestSyncMessageFilter *f = new TestSyncMessageFilter;
  f->Send(new Message);
}
