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> prefix('\xA', ) 5*41c6e437SMariya Podchishchaeva }; 6*41c6e437SMariya Podchishchaeva const char empty_data[] = { 7*41c6e437SMariya Podchishchaeva #embed <media/empty> prefix('\xA', ) 8*41c6e437SMariya Podchishchaeva 1 9*41c6e437SMariya Podchishchaeva }; 10*41c6e437SMariya Podchishchaeva static_assert(sizeof(data) == 2); 11*41c6e437SMariya Podchishchaeva static_assert('\xA' == data[0]); 12*41c6e437SMariya Podchishchaeva static_assert('b' == 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> prefix( .x = 100, .y = 10, ) 22*41c6e437SMariya Podchishchaeva }; 23*41c6e437SMariya Podchishchaeva static_assert(s.x == 100); 24*41c6e437SMariya Podchishchaeva static_assert(s.y == 10); 25*41c6e437SMariya Podchishchaeva static_assert(s.z == 'b'); 26*41c6e437SMariya Podchishchaeva 27*41c6e437SMariya Podchishchaeva // Ensure that an empty file does not produce any prefix tokens. If it did, 28*41c6e437SMariya Podchishchaeva // there would be random tokens here that the parser would trip on. 29*41c6e437SMariya Podchishchaeva #embed <media/empty> prefix(0) 30*41c6e437SMariya Podchishchaeva 31*41c6e437SMariya Podchishchaeva // Ensure we diagnose duplicate parameters even if they're the same value. 32*41c6e437SMariya Podchishchaeva const unsigned char a[] = { 33*41c6e437SMariya Podchishchaeva #embed <jk.txt> prefix(1,) limit(1) prefix(1,) 34*41c6e437SMariya Podchishchaeva // expected-error@-1 {{cannot specify parameter 'prefix' twice in the same '#embed' directive}} 35*41c6e437SMariya Podchishchaeva , 36*41c6e437SMariya Podchishchaeva #embed <jk.txt> prefix(1,) if_empty() prefix(2,) 37*41c6e437SMariya Podchishchaeva // expected-error@-1 {{cannot specify parameter 'prefix' twice in the same '#embed' directive}} 38*41c6e437SMariya Podchishchaeva }; 39