diff options
Diffstat (limited to 'clang/test/Preprocessor/embed_init.c')
-rw-r--r-- | clang/test/Preprocessor/embed_init.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/clang/test/Preprocessor/embed_init.c b/clang/test/Preprocessor/embed_init.c new file mode 100644 index 0000000..79b1743 --- /dev/null +++ b/clang/test/Preprocessor/embed_init.c @@ -0,0 +1,29 @@ +// RUN: %clang_cc1 -std=c23 %s -fsyntax-only --embed-dir=%S/Inputs -verify +// RUN: %clang_cc1 -std=c23 %s -fsyntax-only --embed-dir=%S/Inputs -verify -fexperimental-new-constant-interpreter +// expected-no-diagnostics + +typedef struct kitty { + int purr; +} kitty; + +typedef struct kitty_kitty { + int here; + kitty kit; +} kitty_kitty; + +const int meow = +#embed <single_byte.txt> +; + +const kitty kit = { +#embed <single_byte.txt> +}; + +const kitty_kitty kit_kit = { +#embed <jk.txt> +}; + +static_assert(meow == 'b'); +static_assert(kit.purr == 'b'); +static_assert(kit_kit.here == 'j'); +static_assert(kit_kit.kit.purr == 'k'); |