brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 1bfef3c Raw
56 lines · plain
1// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -ast-dump -o - %s -verify2// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -ast-dump -DSTRUCT -o - %s -verify3 4#ifdef STRUCT5#define KEYWORD struct6#else7#define KEYWORD class8#endif9 10KEYWORD Doggo {11  int legs;    // expected-note {{member is declared here}} expected-note {{member is declared here}}12protected:     // expected-warning {{access specifiers are a clang HLSL extension}}13  int ears[2]; // expected-note {{declared protected here}}14private:       // expected-warning {{access specifiers are a clang HLSL extension}}15  int tail;    // expected-note {{declared private here}} expected-note {{declared private here}}16};17 18KEYWORD Shiba : public Doggo { // expected-warning {{access specifiers are a clang HLSL extension}}19  int undercoat;20};21 22KEYWORD Akita : Doggo {23  int floof;24};25 26KEYWORD Chow : private Doggo {  // expected-warning {{access specifiers are a clang HLSL extension}} expected-note {{constrained by private inheritance here}}27  int megafloof;28};29 30KEYWORD Dachshund : protected Doggo {  // expected-warning {{access specifiers are a clang HLSL extension}} expected-note {{constrained by protected inheritance here}}31  int wiry;32};33 34void Puppers() {35  Shiba Shibe;36  Shibe.undercoat = 0xFFFF;37  Shibe.legs = 4;38 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'}}41 42  Akita Aki;43  Aki.floof = 0xFFFF;44  Aki.legs = 4;45 46  Aki.tail = 1; // expected-error {{'tail' is a private member of 'Doggo'}}47 48  Chow Ch;49  Ch.megafloof = 0xFFFF;50 51  Ch.legs = 4; // expected-error {{'legs' is a private member of 'Doggo'}}52 53  Dachshund DH;54  DH.legs = 4; // expected-error {{'legs' is a protected member of 'Doggo'}}55}56