1 /* { dg-do run { target { ilp32 || lp64 } } } */
2 /* { dg-skip-if "" { *-*-* } { "*" } { "-O2 -Wno-address-of-packed-member" } } */
3 /* { dg-additional-options "-fno-omit-frame-pointer" { target *-*-darwin* } } */
4 /* { dg-shouldfail "asan" } */
6 struct S
{ int i
; } __attribute__ ((packed
));
8 __attribute__((noinline
, noclone
)) int
14 __attribute__((noinline
, noclone
)) int
20 __attribute__((noinline
, noclone
)) struct S
29 struct T
{ char a
[3]; struct S b
[3]; char c
; } t
;
32 asm volatile ("" : "+rm" (p
));
34 if (bar (&v
) != 5) __builtin_abort ();
35 volatile int w
= foo (p
);
39 /* { dg-output "ERROR: AddressSanitizer:\[^\n\r]*on address\[^\n\r]*" } */
40 /* { dg-output "0x\[0-9a-f\]+ at pc 0x\[0-9a-f\]+ bp 0x\[0-9a-f\]+ sp 0x\[0-9a-f\]+\[^\n\r]*(\n|\r\n|\r)" } */
41 /* { dg-output "\[^\n\r]*READ of size 4 at 0x\[0-9a-f\]+ thread T0\[^\n\r]*(\n|\r\n|\r)" } */
42 /* { dg-output " #0 0x\[0-9a-f\]+ +(in _*foo(\[^\n\r]*misalign-1.c:1\[01]|\[^\n\r]*:0|\[^\n\r]*\\+0x\[0-9a-z\]*)|\[(\])\[^\n\r]*(\n|\r\n|\r)" } */
43 /* { dg-output " #1 0x\[0-9a-f\]+ +(in _*main (\[^\n\r]*misalign-1.c:3\[45]|\[^\n\r]*:0|\[^\n\r]*\\+0x\[0-9a-z\]*)|\[(\]).*(\n|\r\n|\r)" } */