xref: /llvm-project/clang/test/Sema/incorrect_pure.cpp (revision f34a5205aa481a6d9a15054bcc5f7b9875906a17)
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 
3 [[gnu::pure]] void foo(); // expected-warning{{'pure' attribute on function returning 'void'; attribute ignored}}
4 
5 [[gnu::const]] void bar(); // expected-warning{{'const' attribute on function returning 'void'; attribute ignored}}
6 
7 struct A {
8     [[gnu::pure]] A(); // expected-warning{{'pure' attribute on function returning 'void'; attribute ignored}}
9 
10     [[gnu::const]] A(int); // expected-warning{{'const' attribute on function returning 'void'; attribute ignored}}
11     [[gnu::pure]] ~A(); // expected-warning{{'pure' attribute on function returning 'void'; attribute ignored}}
12 
13     [[gnu::const]] [[gnu::pure]] int m(); // expected-warning{{'const' attribute imposes more restrictions; 'pure' attribute ignored}}
14 };
15