1*41c6e437SMariya Podchishchaeva // RUN: %clang_cc1 -std=c23 %s --embed-dir=%S/Inputs -fsyntax-only -verify 2*41c6e437SMariya Podchishchaeva 3*41c6e437SMariya Podchishchaeva const char data[] = { 4*41c6e437SMariya Podchishchaeva #embed <single_byte.txt> suffix(, '\xA') 5*41c6e437SMariya Podchishchaeva }; 6*41c6e437SMariya Podchishchaeva const char empty_data[] = { 7*41c6e437SMariya Podchishchaeva #embed <media/empty> suffix(, '\xA') 8*41c6e437SMariya Podchishchaeva 1 9*41c6e437SMariya Podchishchaeva }; 10*41c6e437SMariya Podchishchaeva static_assert(sizeof(data) == 2); 11*41c6e437SMariya Podchishchaeva static_assert('b' == data[0]); 12*41c6e437SMariya Podchishchaeva static_assert('\xA' == data[1]); 13*41c6e437SMariya Podchishchaeva static_assert(sizeof(empty_data) == 1); 14*41c6e437SMariya Podchishchaeva static_assert(1 == empty_data[0]); 15*41c6e437SMariya Podchishchaeva 16*41c6e437SMariya Podchishchaeva struct S { 17*41c6e437SMariya Podchishchaeva int x, y, z; 18*41c6e437SMariya Podchishchaeva }; 19*41c6e437SMariya Podchishchaeva 20*41c6e437SMariya Podchishchaeva const struct S s = { 21*41c6e437SMariya Podchishchaeva #embed <single_byte.txt> suffix( , .y = 100, .z = 10 ) 22*41c6e437SMariya Podchishchaeva }; 23*41c6e437SMariya Podchishchaeva 24*41c6e437SMariya Podchishchaeva static_assert(s.x == 'b'); 25*41c6e437SMariya Podchishchaeva static_assert(s.y == 100); 26*41c6e437SMariya Podchishchaeva static_assert(s.z == 10); 27*41c6e437SMariya Podchishchaeva 28*41c6e437SMariya Podchishchaeva // Ensure that an empty file does not produce any suffix tokens. If it did, 29*41c6e437SMariya Podchishchaeva // there would be random tokens here that the parser would trip on. 30*41c6e437SMariya Podchishchaeva #embed <media/empty> suffix(0) 31*41c6e437SMariya Podchishchaeva 32*41c6e437SMariya Podchishchaeva // Ensure we diagnose duplicate parameters even if they're the same value. 33*41c6e437SMariya Podchishchaeva const unsigned char a[] = { 34*41c6e437SMariya Podchishchaeva #embed <jk.txt> suffix(,1) prefix() suffix(,1) 35*41c6e437SMariya Podchishchaeva // expected-error@-1 {{cannot specify parameter 'suffix' twice in the same '#embed' directive}} 36*41c6e437SMariya Podchishchaeva , 37*41c6e437SMariya Podchishchaeva #embed <jk.txt> suffix(,1) if_empty() suffix(,2) 38*41c6e437SMariya Podchishchaeva // expected-error@-1 {{cannot specify parameter 'suffix' twice in the same '#embed' directive}} 39*41c6e437SMariya Podchishchaeva }; 40