xref: /llvm-project/clang/test/SemaCXX/ms-empty_bases.cpp (revision 7eca8a3d41eef5facf3847c33ce1e6b1e35bc7c8)
1cd3ebfe2SDavid Majnemer // RUN: %clang_cc1 -triple i386-pc-win32 %s -fsyntax-only -verify -fms-extensions -Wno-microsoft -std=c++11
2cd3ebfe2SDavid Majnemer 
3cd3ebfe2SDavid Majnemer struct __declspec(empty_bases) S {};
4cd3ebfe2SDavid Majnemer enum __declspec(empty_bases) E {}; // expected-warning{{'empty_bases' attribute only applies to classes}}
5cd3ebfe2SDavid Majnemer int __declspec(empty_bases) I; // expected-warning{{'empty_bases' attribute only applies to classes}}
6cd3ebfe2SDavid Majnemer typedef struct T __declspec(empty_bases) U; // expected-warning{{'empty_bases' attribute only applies to classes}}
__anon3145cc070102() 7cd3ebfe2SDavid Majnemer auto z = []() __declspec(empty_bases) { return nullptr; }; // expected-warning{{'empty_bases' attribute only applies to classes}}
8*7eca8a3dSDavid Majnemer 
9*7eca8a3dSDavid Majnemer struct __declspec(empty_bases(1)) X {}; // expected-error{{'empty_bases' attribute takes no arguments}}
10