21 lines
518 B
C++
21 lines
518 B
C++
|
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
||
|
|
||
|
template <class Element>
|
||
|
void foo() {
|
||
|
}
|
||
|
template <>
|
||
|
__attribute__((visibility("hidden"))) // expected-note {{previous attribute is here}}
|
||
|
void foo<int>();
|
||
|
|
||
|
template <>
|
||
|
void foo<int>();
|
||
|
|
||
|
template <>
|
||
|
__attribute__((visibility("default"))) // expected-error {{visibility does not match previous declaration}}
|
||
|
void foo<int>() {
|
||
|
}
|
||
|
|
||
|
struct x3 {
|
||
|
static int y;
|
||
|
} __attribute((visibility("default"))); // expected-warning {{attribute 'visibility' after definition is ignored}}
|