Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / ParserHLSL / access_specifiers.hlsl
blob1bfef3c44d773f443b31be3f0de2b1f3072a1efc
1 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -ast-dump -o - %s -verify
2 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -ast-dump -DSTRUCT -o - %s -verify
4 #ifdef STRUCT
5 #define KEYWORD struct
6 #else
7 #define KEYWORD class
8 #endif
10 KEYWORD Doggo {
11   int legs;    // expected-note {{member is declared here}} expected-note {{member is declared here}}
12 protected:     // expected-warning {{access specifiers are a clang HLSL extension}}
13   int ears[2]; // expected-note {{declared protected here}}
14 private:       // expected-warning {{access specifiers are a clang HLSL extension}}
15   int tail;    // expected-note {{declared private here}} expected-note {{declared private here}}
18 KEYWORD Shiba : public Doggo { // expected-warning {{access specifiers are a clang HLSL extension}}
19   int undercoat;
22 KEYWORD Akita : Doggo {
23   int floof;
26 KEYWORD Chow : private Doggo {  // expected-warning {{access specifiers are a clang HLSL extension}} expected-note {{constrained by private inheritance here}}
27   int megafloof;
30 KEYWORD Dachshund : protected Doggo {  // expected-warning {{access specifiers are a clang HLSL extension}} expected-note {{constrained by protected inheritance here}}
31   int wiry;
34 void Puppers() {
35   Shiba Shibe;
36   Shibe.undercoat = 0xFFFF;
37   Shibe.legs = 4;
39   Shibe.tail = 1;    // expected-error {{'tail' is a private member of 'Doggo'}}
40   Shibe.ears[0] = 1; // expected-error {{'ears' is a protected member of 'Doggo'}}
42   Akita Aki;
43   Aki.floof = 0xFFFF;
44   Aki.legs = 4;
46   Aki.tail = 1; // expected-error {{'tail' is a private member of 'Doggo'}}
48   Chow Ch;
49   Ch.megafloof = 0xFFFF;
51   Ch.legs = 4; // expected-error {{'legs' is a private member of 'Doggo'}}
53   Dachshund DH;
54   DH.legs = 4; // expected-error {{'legs' is a protected member of 'Doggo'}}