Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
57408b45
Commit
57408b45
authored
May 07, 2004
by
Hans-Peter Nilsson
Committed by
Hans-Peter Nilsson
May 07, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* gcc.c-torture/execute/pr15296.c: New test.
From-SVN: r81599
parent
9acf97b6
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
77 additions
and
0 deletions
+77
-0
gcc/testsuite/ChangeLog
+4
-0
gcc/testsuite/gcc.c-torture/execute/pr15296.c
+73
-0
No files found.
gcc/testsuite/ChangeLog
View file @
57408b45
2004-05-07 Hans-Peter Nilsson <hp@axis.com>
* gcc.c-torture/execute/pr15296.c: New test.
2004-05-05 Uros Bizjak <uros@kss-loka.si>
* gcc.dg/builtins-40.c: New test.
...
...
gcc/testsuite/gcc.c-torture/execute/pr15296.c
0 → 100644
View file @
57408b45
/* PR optimization/15296. The delayed-branch scheduler caused code that
SEGV:d for CRIS; a register was set to -1 in a delay-slot for the
fall-through code, while that register held a pointer used in code at
the branch target. */
typedef
int
__attribute__
((
mode
(
__pointer__
)))
intptr_t
;
typedef
intptr_t
W
;
union
u0
{
union
u0
*
r
;
W
i
;
};
struct
s1
{
union
u0
**
m0
;
union
u0
m1
[
4
];
};
void
f
(
void
*
,
struct
s1
*
,
const
union
u0
*
,
W
,
W
,
W
)
__attribute__
((
__noinline__
));
void
g
(
void
*
,
char
*
)
__attribute__
((
__noinline__
));
void
f
(
void
*
a
,
struct
s1
*
b
,
const
union
u0
*
h
,
W
v0
,
W
v1
,
W
v4
)
{
union
u0
*
e
=
0
;
union
u0
*
k
=
0
;
union
u0
**
v5
=
b
->
m0
;
union
u0
*
c
=
b
->
m1
;
union
u0
**
d
=
&
v5
[
0
];
l0:
;
if
(
v0
<
v1
)
goto
l0
;
if
(
v0
==
0
)
goto
l3
;
v0
=
v4
;
if
(
v0
!=
0
)
goto
l3
;
c
[
0
].
r
=
*
d
;
v1
=
-
1
;
e
=
c
[
0
].
r
;
if
(
e
!=
0
)
g
(
a
,
""
);
k
=
e
+
3
;
k
->
i
=
v1
;
goto
l4
;
l3:
;
c
[
0
].
i
=
v0
;
e
=
c
[
1
].
r
;
if
(
e
!=
0
)
g
(
a
,
""
);
e
=
c
[
0
].
r
;
if
(
e
==
0
)
g
(
a
,
""
);
k
=
e
+
2
;
k
->
r
=
c
[
1
].
r
;
l4:
;
}
void
g
(
void
*
a
,
char
*
b
)
{
abort
();
}
int
main
()
{
union
u0
uv
[]
=
{{
.
i
=
111
},
{
.
i
=
222
},
{
.
i
=
333
},
{
.
i
=
444
}};
struct
s1
s
=
{
0
,
{{
.
i
=
555
},
{
.
i
=
0
},
{
.
i
=
999
},
{
.
i
=
777
}}};
f
(
0
,
&
s
,
0
,
20000
,
10000
,
(
W
)
uv
);
if
(
s
.
m1
[
0
].
i
!=
(
W
)
uv
||
s
.
m1
[
1
].
i
!=
0
||
s
.
m1
[
2
].
i
!=
999
||
s
.
m1
[
3
].
i
!=
777
||
uv
[
0
].
i
!=
111
||
uv
[
1
].
i
!=
222
||
uv
[
2
].
i
!=
0
||
uv
[
3
].
i
!=
444
)
abort
();
exit
(
0
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment