blob: 7d0b5a11ca9477b64baffbdc216ffd8d67ee58d7 (
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
|
/* 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 } */
typedef __ea int eaint;
void func ()
{
register __ea int local1; /* { dg-error "'__ea' combined with 'register' qualifier for 'local1'" } */
auto __ea int local2; /* { dg-error "'__ea' combined with 'auto' qualifier for 'local2'" } */
__ea int local3; /* { dg-error "'__ea' specified for auto variable 'local3'" } */
register int *__ea p1; /* { dg-error "'__ea' combined with 'register' qualifier for 'p1'" } */
auto char *__ea p2; /* { dg-error "'__ea' combined with 'auto' qualifier for 'p2'" } */
void *__ea p3; /* { dg-error "'__ea' specified for auto variable 'p3'" } */
register __ea int a1[2]; /* { dg-error "'__ea' combined with 'register' qualifier for 'a1'" } */
auto __ea char a2[1]; /* { dg-error "'__ea' combined with 'auto' qualifier for 'a2'" } */
__ea char a3[5]; /* { dg-error "'__ea' specified for auto variable 'a3'" } */
register eaint td1; /* { dg-error "'__ea' combined with 'register' qualifier for 'td1'" } */
auto eaint td2; /* { dg-error "'__ea' combined with 'auto' qualifier for 'td2'" } */
eaint td3; /* { dg-error "'__ea' specified for auto variable 'td3'" } */
}
void func2 (__ea int x) /* { dg-error "'__ea' specified for parameter 'x'" } */
{ }
void func2td (eaint x) /* { dg-error "'__ea' specified for parameter 'x'" } */
{ }
struct st {
__ea int x; /* { dg-error "'__ea' specified for structure field 'x'" } */
eaint td; /* { dg-error "'__ea' specified for structure field 'td'" } */
int *__ea q; /* { dg-error "'__ea' specified for structure field 'q'" } */
int __ea b : 7; /* { dg-error "'__ea' specified for structure field 'b'" } */
int __ea : 1; /* { dg-error "'__ea' specified for structure field" } */
} s;
struct A { int a; };
int func3 (int *__ea); /* { dg-error "'__ea' specified for unnamed parameter" } */
int func3 (int *__ea x) /* { dg-error "'__ea' specified for parameter 'x'" } */
{
struct A i = (__ea struct A) { 1 }; /* { dg-error "compound literal qualified by address-space qualifier" } */
return i.a;
}
extern __ea int ea_var; /* { dg-message "note: previous declaration of 'ea_var' was here" } */
int ea_var; /* { dg-error "conflicting named address spaces \\(generic vs __ea\\) for 'ea_var'" } */
extern eaint ea_var_td; /* { dg-message "note: previous declaration of 'ea_var_td' was here" } */
int ea_var_td; /* { dg-error "conflicting named address spaces \\(generic vs __ea\\) for 'ea_var_td'" } */
|