* expmed.c (flip_storage_order): Deal with complex modes specially.
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / 20001229-1.c
blob69ce6dab86df8dd091d63f320ebe6b3bf285827b
1 /* This testcase originally provoked an unaligned access fault on Alpha.
3 Since Digital Unix and Linux (and probably others) by default fix
4 these up in the kernel, the failure was not visible unless one
5 is sitting at the console examining logs.
7 So: If we know how, ask the kernel to deliver SIGBUS instead so
8 that the test case visibly fails. */
10 #if defined(__alpha__) && defined(__linux__)
11 #include <asm/sysinfo.h>
12 #include <asm/unistd.h>
14 static inline int
15 setsysinfo(unsigned long op, void *buffer, unsigned long size,
16 int *start, void *arg, unsigned long flag)
18 syscall(__NR_osf_setsysinfo, op, buffer, size, start, arg, flag);
21 static void __attribute__((constructor))
22 trap_unaligned(void)
24 unsigned int buf[2];
25 buf[0] = SSIN_UACPROC;
26 buf[1] = UAC_SIGBUS | UAC_NOPRINT;
27 setsysinfo(SSI_NVPAIRS, buf, 1, 0, 0, 0);
29 #endif /* alpha */
31 void foo(char *a, char *b) { }
33 void showinfo()
35 char uname[33] = "", tty[38] = "/dev/";
36 foo(uname, tty);
39 int main()
41 showinfo ();
42 exit (0);