summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/spu/ea/errors2.c
blob: 74a32ff5e7e1d3c1278313557b53b8f021f308c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/* Copyright (C) 2009 Free Software Foundation, Inc.

   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
   Software Foundation; either version 3 of the License, or (at your option)
   any later version.

   This file is distributed in the hope that it will be useful, but WITHOUT
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   for more details.

   You should have received a copy of the GNU General Public License
   along with this file; see the file COPYING3.  If not see
   <http://www.gnu.org/licenses/>.  */

/* Invalid __ea declarations.  */

/* { dg-do compile } */

__ea char ea_str[] = "abc";
char lm_str[] = "abc";

__ea char *lm_ea_ptr1 = "abc";				/* { dg-error "initializer element is not computable at load time" } */
__ea char *lm_ea_ptr2 = (__ea char *)"abc";		/* { dg-error "initializer element is not constant" } */
__ea char *lm_ea_ptr3 = ea_str;
__ea char *lm_ea_ptr4 = (__ea char *)ea_str;
__ea char *lm_ea_ptr5 = lm_str;				/* { dg-error "initializer element is not computable at load time" } */
__ea char *lm_ea_ptr6 = (__ea char *)lm_str;		/* { dg-error "initializer element is not constant" } */

__ea char * __ea ea_ea_ptr1 = ea_str;
__ea char * __ea ea_ea_ptr2 = (__ea char *)ea_str;

char * __ea ea_lm_ptr1 = lm_str;
char * __ea ea_lm_ptr2 = (char *)lm_str;

struct foo {
  int first;
  __ea char *ptr;
  int last;
};

__ea struct foo ea_struct1 = {
  10,
  (__ea char *)0,
  11,
};

__ea struct foo ea_struct2 = {
  20,
  0,
  21,
};

struct foo ea_struct3 = {
  30,
  ea_str,
  31,
};

struct foo ea_struct4 = {
  40,
  (__ea char *)lm_str,	/* { dg-error "(initializer element is not constant)|(near initialization)" "" } */
  41,
};

struct bar {
  int first;
  char *ptr;
  int last;
};

__ea struct bar ea_struct5 = {
  50,
  0,
  51,
};

__ea struct bar ea_struct6 = {
  60,
  (char *)0,
  61,
};

__ea struct bar ea_struct7 = {
  70,
  lm_str,
  71,
};

struct bar lm_struct8 = {
  80,
  0,
  81,
};

struct bar lm_struct9 = {
  90,
  (char *)0,
  91,
};

struct bar lm_struct10 = {
  100,
  lm_str,
  101,
};