[Reland][Runtimes] Merge 'compile_commands.json' files from runtimes build (#116303)
[llvm-project.git] / clang / test / Sema / offsetof-64.c
blob8ffc3af9858807d3f6013510e3caaf31dc291b59
1 // RUN: %clang_cc1 -fsyntax-only -verify %s -triple x86_64-linux-gnu
3 // PR15216
4 // Don't crash when taking computing the offset of structs with large arrays.
5 const unsigned long Size = (1l << 60);
7 struct Chunk1 {
8 char padding[Size]; // expected-warning {{folded to constant}}
9 char more_padding[1][Size]; // expected-warning {{folded to constant}}
10 char data;
13 int test1 = __builtin_offsetof(struct Chunk1, data);
15 struct Chunk2 {
16 char padding[Size][Size][Size]; // expected-error {{array is too large}}
17 char data;
20 // FIXME: Remove this error when the constant evaluator learns to
21 // ignore bad types.
22 int test2 = __builtin_offsetof(struct Chunk2, data); // expected-error{{initializer element is not a compile-time constant}}