/* Copyright (C) 2009 Free Software Foundation, Inc.
|
/* Copyright (C) 2009 Free Software Foundation, Inc.
|
|
|
This file is free software; you can redistribute it and/or modify it under
|
This file is free software; you can redistribute it and/or modify it under
|
the terms of the GNU General Public License as published by the Free
|
the terms of the GNU General Public License as published by the Free
|
Software Foundation; either version 3 of the License, or (at your option)
|
Software Foundation; either version 3 of the License, or (at your option)
|
any later version.
|
any later version.
|
|
|
This file is distributed in the hope that it will be useful, but WITHOUT
|
This file is distributed in the hope that it will be useful, but WITHOUT
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
for more details.
|
for more details.
|
|
|
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
along with this file; see the file COPYING3. If not see
|
along with this file; see the file COPYING3. If not see
|
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
|
|
/* Valid __ea declarations. */
|
/* Valid __ea declarations. */
|
|
|
/* { dg-do compile } */
|
/* { dg-do compile } */
|
|
|
/* Typedefs. */
|
/* Typedefs. */
|
typedef __ea int ea_int_t;
|
typedef __ea int ea_int_t;
|
typedef __ea int *ea_int_star_t;
|
typedef __ea int *ea_int_star_t;
|
typedef int outer_t;
|
typedef int outer_t;
|
|
|
/* Externs. */
|
/* Externs. */
|
|
|
__ea extern int i1;
|
__ea extern int i1;
|
extern __ea int i2;
|
extern __ea int i2;
|
extern int __ea i3;
|
extern int __ea i3;
|
extern __ea ea_int_t i4; /* __ea qualifier permitted via typedef. */
|
extern __ea ea_int_t i4; /* __ea qualifier permitted via typedef. */
|
extern int __ea __ea __ea dupe; /* __ea duplicate permitted directly. */
|
extern int __ea __ea __ea dupe; /* __ea duplicate permitted directly. */
|
extern int __ea *ppu;
|
extern int __ea *ppu;
|
|
|
/* Pointers. */
|
/* Pointers. */
|
__ea int *i4p;
|
__ea int *i4p;
|
|
|
/* Structs. */
|
/* Structs. */
|
struct st {
|
struct st {
|
__ea int *p;
|
__ea int *p;
|
};
|
};
|
|
|
/* Variable definitions. */
|
/* Variable definitions. */
|
__ea int ii0;
|
__ea int ii0;
|
int *__ea ii1;
|
int *__ea ii1;
|
static int __ea ii2;
|
static int __ea ii2;
|
|
|
void
|
void
|
f1 ()
|
f1 ()
|
{
|
{
|
int *spu;
|
int *spu;
|
ppu = (ea_int_t *) spu;
|
ppu = (ea_int_t *) spu;
|
ppu = (ea_int_star_t) spu;
|
ppu = (ea_int_star_t) spu;
|
}
|
}
|
|
|
void
|
void
|
f2 ()
|
f2 ()
|
{
|
{
|
int *spu;
|
int *spu;
|
spu = (int *) ppu;
|
spu = (int *) ppu;
|
ppu = (__ea int *) spu;
|
ppu = (__ea int *) spu;
|
}
|
}
|
|
|
void
|
void
|
f3 ()
|
f3 ()
|
{
|
{
|
int i = sizeof (__ea int);
|
int i = sizeof (__ea int);
|
}
|
}
|
|
|
__ea int *f4 (void)
|
__ea int *f4 (void)
|
{
|
{
|
return 0;
|
return 0;
|
}
|
}
|
|
|
int f5 (__ea int *parm)
|
int f5 (__ea int *parm)
|
{
|
{
|
static __ea int local4;
|
static __ea int local4;
|
int tmp = local4;
|
int tmp = local4;
|
local4 = *parm;
|
local4 = *parm;
|
return tmp;
|
return tmp;
|
}
|
}
|
|
|
static inline __ea void *f6 (__ea void *start)
|
static inline __ea void *f6 (__ea void *start)
|
{
|
{
|
return 0;
|
return 0;
|
}
|
}
|
|
|
void f7 (void)
|
void f7 (void)
|
{
|
{
|
__ea void *s1;
|
__ea void *s1;
|
auto __ea void *s2;
|
auto __ea void *s2;
|
}
|
}
|
|
|
__ea int *f8 (__ea int *x)
|
__ea int *f8 (__ea int *x)
|
{
|
{
|
register __ea int *y = x;
|
register __ea int *y = x;
|
__ea int *z = y;
|
__ea int *z = y;
|
return z;
|
return z;
|
}
|
}
|
|
|
long long f9 (__ea long long x[2])
|
long long f9 (__ea long long x[2])
|
{
|
{
|
return x[0] + x[1];
|
return x[0] + x[1];
|
}
|
}
|
|
|
void f10 ()
|
void f10 ()
|
{
|
{
|
static __ea outer_t o;
|
static __ea outer_t o;
|
}
|
}
|
|
|