URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 149 |
Rev 154 |
/* Copyright (C) 2003 Free Software Foundation.
|
/* Copyright (C) 2003 Free Software Foundation.
|
|
|
Verify that the malloc-like __builtin_ allocation functions are
|
Verify that the malloc-like __builtin_ allocation functions are
|
correctly aliased by the compiler.
|
correctly aliased by the compiler.
|
|
|
Written by Roger Sayle, 12th April 2003. */
|
Written by Roger Sayle, 12th April 2003. */
|
|
|
/* { dg-do link } */
|
/* { dg-do link } */
|
|
|
typedef __SIZE_TYPE__ size_t;
|
typedef __SIZE_TYPE__ size_t;
|
|
|
extern void abort (void);
|
extern void abort (void);
|
extern void *malloc (size_t);
|
extern void *malloc (size_t);
|
extern void *calloc (size_t,size_t);
|
extern void *calloc (size_t,size_t);
|
|
|
extern void link_error (void);
|
extern void link_error (void);
|
|
|
static int x;
|
static int x;
|
|
|
void test1(void)
|
void test1(void)
|
{
|
{
|
int *ptr1, *ptr2;
|
int *ptr1, *ptr2;
|
|
|
ptr1 = &x;
|
ptr1 = &x;
|
ptr2 = (int*) malloc (sizeof (int));
|
ptr2 = (int*) malloc (sizeof (int));
|
|
|
*ptr1 = 12;
|
*ptr1 = 12;
|
*ptr2 = 8;
|
*ptr2 = 8;
|
|
|
if (*ptr1 != 12)
|
if (*ptr1 != 12)
|
link_error();
|
link_error();
|
}
|
}
|
|
|
void test2(void)
|
void test2(void)
|
{
|
{
|
int *ptr1, *ptr2;
|
int *ptr1, *ptr2;
|
|
|
ptr1 = &x;
|
ptr1 = &x;
|
ptr2 = (int*) calloc (1, sizeof (int));
|
ptr2 = (int*) calloc (1, sizeof (int));
|
|
|
*ptr1 = 12;
|
*ptr1 = 12;
|
*ptr2 = 8;
|
*ptr2 = 8;
|
|
|
if (*ptr1 != 12)
|
if (*ptr1 != 12)
|
link_error ();
|
link_error ();
|
}
|
}
|
|
|
int main()
|
int main()
|
{
|
{
|
test1 ();
|
test1 ();
|
test2 ();
|
test2 ();
|
return 0;
|
return 0;
|
}
|
}
|
|
|
#ifndef __OPTIMIZE__
|
#ifndef __OPTIMIZE__
|
void link_error (void)
|
void link_error (void)
|
{
|
{
|
abort ();
|
abort ();
|
}
|
}
|
#endif
|
#endif
|
|
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.