111
|
1 /* Copyright (C) 2003 Free Software Foundation.
|
|
2
|
|
3 Verify that the malloc-like __builtin_ allocation functions are
|
|
4 correctly aliased by the compiler.
|
|
5
|
|
6 Written by Roger Sayle, 12th April 2003. */
|
|
7
|
|
8 /* { dg-do link } */
|
|
9 /* { dg-options "-ansi" } */
|
|
10
|
|
11 typedef __SIZE_TYPE__ size_t;
|
|
12
|
|
13 extern void abort (void);
|
|
14 extern void *malloc (size_t);
|
|
15 extern void *calloc (size_t,size_t);
|
|
16
|
|
17 extern void link_error (void);
|
|
18
|
|
19 static int x;
|
|
20
|
|
21 void test1(void)
|
|
22 {
|
|
23 int *ptr1, *ptr2;
|
|
24
|
|
25 ptr1 = &x;
|
|
26 ptr2 = (int*) malloc (sizeof (int));
|
|
27
|
|
28 *ptr1 = 12;
|
|
29 *ptr2 = 8;
|
|
30
|
|
31 if (*ptr1 != 12)
|
|
32 link_error();
|
|
33 }
|
|
34
|
|
35 void test2(void)
|
|
36 {
|
|
37 int *ptr1, *ptr2;
|
|
38
|
|
39 ptr1 = &x;
|
|
40 ptr2 = (int*) calloc (1, sizeof (int));
|
|
41
|
|
42 *ptr1 = 12;
|
|
43 *ptr2 = 8;
|
|
44
|
|
45 if (*ptr1 != 12)
|
|
46 link_error ();
|
|
47 }
|
|
48
|
|
49 int main()
|
|
50 {
|
|
51 test1 ();
|
|
52 test2 ();
|
|
53 return 0;
|
|
54 }
|
|
55
|
|
56 #ifndef __OPTIMIZE__
|
|
57 void link_error (void)
|
|
58 {
|
|
59 abort ();
|
|
60 }
|
|
61 #endif
|
|
62
|