63 lines
874 B
C
63 lines
874 B
C
/* Copyright (C) 2003 Free Software Foundation.
|
|
|
|
Verify that the malloc-like __builtin_ allocation functions are
|
|
correctly aliased by the compiler.
|
|
|
|
Written by Roger Sayle, 12th April 2003. */
|
|
|
|
/* { dg-do link } */
|
|
/* { dg-options "-ansi" } */
|
|
|
|
typedef __SIZE_TYPE__ size_t;
|
|
|
|
extern void abort (void);
|
|
extern void *malloc (size_t);
|
|
extern void *calloc (size_t,size_t);
|
|
|
|
extern void link_error (void);
|
|
|
|
static int x;
|
|
|
|
void test1(void)
|
|
{
|
|
int *ptr1, *ptr2;
|
|
|
|
ptr1 = &x;
|
|
ptr2 = (int*) malloc (sizeof (int));
|
|
|
|
*ptr1 = 12;
|
|
*ptr2 = 8;
|
|
|
|
if (*ptr1 != 12)
|
|
link_error();
|
|
}
|
|
|
|
void test2(void)
|
|
{
|
|
int *ptr1, *ptr2;
|
|
|
|
ptr1 = &x;
|
|
ptr2 = (int*) calloc (1, sizeof (int));
|
|
|
|
*ptr1 = 12;
|
|
*ptr2 = 8;
|
|
|
|
if (*ptr1 != 12)
|
|
link_error ();
|
|
}
|
|
|
|
int main()
|
|
{
|
|
test1 ();
|
|
test2 ();
|
|
return 0;
|
|
}
|
|
|
|
#ifndef __OPTIMIZE__
|
|
void link_error (void)
|
|
{
|
|
abort ();
|
|
}
|
|
#endif
|
|
|