blob: ed52ec2743f9568082155c6999dd9afae331df68 [file] [log] [blame]
John McCall41887602012-01-29 01:20:30 +00001// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -verify %s
2
3void test0() __attribute__((visibility("default")));
4void test1() __attribute__((visibility("hidden")));
5void test2() __attribute__((visibility("internal")));
6
7// rdar://problem/10753392
8void test3() __attribute__((visibility("protected"))); // expected-warning {{target does not support 'protected' visibility; using 'default'}}
9
Rafael Espindola45a0b262012-04-26 01:26:03 +000010struct __attribute__((visibility("hidden"))) test4; // expected-note {{previous attribute is here}}
Rafael Espindola4e31b4d2012-05-01 20:58:29 +000011struct test4;
Rafael Espindola45a0b262012-04-26 01:26:03 +000012struct __attribute__((visibility("default"))) test4; // expected-error {{visibility does not match previous declaration}}
Rafael Espindola548d17c2012-05-02 20:36:57 +000013
14struct test5;
15struct __attribute__((visibility("hidden"))) test5; // expected-note {{previous attribute is here}}
16struct __attribute__((visibility("default"))) test5; // expected-error {{visibility does not match previous declaration}}
Rafael Espindola9b79fc92012-05-07 23:58:18 +000017
18void test6() __attribute__((visibility("hidden"), // expected-note {{previous attribute is here}}
19 visibility("default"))); // expected-error {{visibility does not match previous declaration}}
Rafael Espindola98ae8342012-05-10 02:50:16 +000020
21extern int test7 __attribute__((visibility("default"))); // expected-note {{previous attribute is here}}
22extern int test7 __attribute__((visibility("hidden"))); // expected-error {{visibility does not match previous declaration}}
Rafael Espindoladd44f342012-05-10 03:01:34 +000023
John McCalld4c3d662013-02-20 01:54:26 +000024typedef int __attribute__((visibility("default"))) bar; // expected-warning {{'visibility' attribute ignored}}
25
26int x __attribute__((type_visibility("default"))); // expected-error {{'type_visibility' attribute only applies to types and namespaces}}
Benjamin Kramerae3a83f2013-09-09 15:08:57 +000027
28int PR17105 __attribute__((visibility(hidden))); // expected-error {{'visibility' attribute requires a string}}