minix/external/bsd/llvm/dist/clang/test/Sema/offsetof-64.c
Lionel Sambuc f4a2713ac8 Importing netbsd clang -- pristine
Change-Id: Ia40e9ffdf29b5dab2f122f673ff6802a58bc690f
2014-07-28 17:05:57 +02:00

22 lines
662 B
C

// RUN: %clang_cc1 -fsyntax-only -verify %s -triple x86_64-linux-gnu
// PR15216
// Don't crash when taking computing the offset of structs with large arrays.
const unsigned long Size = (1l << 60);
struct Chunk1 {
char padding[Size];
char more_padding[1][Size];
char data;
};
int test1 = __builtin_offsetof(struct Chunk1, data);
struct Chunk2 {
char padding[Size][Size][Size]; // expected-error 2{{array is too large}}
char data;
};
// FIXME: Remove this error when the constant evaluator learns to
// ignore bad types.
int test2 = __builtin_offsetof(struct Chunk2, data); // expected-error{{initializer element is not a compile-time constant}}