[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / clang / test / CodeGen / available-externally-hidden.cpp
bloba04728a0cb13351eb14d02b537a86c7a572722d0
1 // RUN: %clang_cc1 -O2 -fvisibility=hidden -std=c++11 -emit-llvm -o - -triple x86_64-apple-darwin10 %s | FileCheck %s
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.
6 struct Filter {
7 virtual void Foo();
8 int a;
9 };
11 class Message{};
12 class Sender {
13 public:
14 virtual bool Send(Message* msg) = 0;
16 protected:
17 virtual ~Sender() {}
20 // CHECK: declare noundef zeroext i1 @_ZThn16_N17SyncMessageFilter4SendEP7Message
21 class SyncMessageFilter : public Filter, public Sender {
22 public:
23 bool Send(Message* message) override;
26 class TestSyncMessageFilter : public SyncMessageFilter {
29 int main() {
30 TestSyncMessageFilter *f = new TestSyncMessageFilter;
31 f->Send(new Message);