xref: /llvm-project/clang/test/Preprocessor/embed_init.c (revision 41c6e4379204ffc00948edd33d59ba5ebbceaba2)
1*41c6e437SMariya Podchishchaeva // RUN: %clang_cc1 -std=c23 %s -fsyntax-only --embed-dir=%S/Inputs -verify
2*41c6e437SMariya Podchishchaeva // RUN: %clang_cc1 -std=c23 %s -fsyntax-only --embed-dir=%S/Inputs -verify -fexperimental-new-constant-interpreter
3*41c6e437SMariya Podchishchaeva // expected-no-diagnostics
4*41c6e437SMariya Podchishchaeva 
5*41c6e437SMariya Podchishchaeva typedef struct kitty {
6*41c6e437SMariya Podchishchaeva 	int purr;
7*41c6e437SMariya Podchishchaeva } kitty;
8*41c6e437SMariya Podchishchaeva 
9*41c6e437SMariya Podchishchaeva typedef struct kitty_kitty {
10*41c6e437SMariya Podchishchaeva 	int here;
11*41c6e437SMariya Podchishchaeva 	kitty kit;
12*41c6e437SMariya Podchishchaeva } kitty_kitty;
13*41c6e437SMariya Podchishchaeva 
14*41c6e437SMariya Podchishchaeva const int meow =
15*41c6e437SMariya Podchishchaeva #embed <single_byte.txt>
16*41c6e437SMariya Podchishchaeva ;
17*41c6e437SMariya Podchishchaeva 
18*41c6e437SMariya Podchishchaeva const kitty kit = {
19*41c6e437SMariya Podchishchaeva #embed <single_byte.txt>
20*41c6e437SMariya Podchishchaeva };
21*41c6e437SMariya Podchishchaeva 
22*41c6e437SMariya Podchishchaeva const kitty_kitty kit_kit = {
23*41c6e437SMariya Podchishchaeva #embed <jk.txt>
24*41c6e437SMariya Podchishchaeva };
25*41c6e437SMariya Podchishchaeva 
26*41c6e437SMariya Podchishchaeva static_assert(meow == 'b');
27*41c6e437SMariya Podchishchaeva static_assert(kit.purr == 'b');
28*41c6e437SMariya Podchishchaeva static_assert(kit_kit.here == 'j');
29*41c6e437SMariya Podchishchaeva static_assert(kit_kit.kit.purr == 'k');
30