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
574f95c4
Commit
574f95c4
authored
Nov 14, 2001
by
Alexandre Oliva
Committed by
Alexandre Oliva
Nov 14, 2001
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* gcc.c-torture/execute/20010122-1.c: Prevent unwanted inlining.
From-SVN: r47002
parent
c6fa9728
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
28 deletions
+26
-28
gcc/testsuite/ChangeLog
+4
-0
gcc/testsuite/gcc.c-torture/execute/20010122-1.c
+22
-28
No files found.
gcc/testsuite/ChangeLog
View file @
574f95c4
2001-11-14 Alexandre Oliva <aoliva@redhat.com>
* gcc.c-torture/execute/20010122-1.c: Prevent unwanted inlining.
2001-11-13 Nathan Sidwell <nathan@codesourcery.com>
2001-11-13 Nathan Sidwell <nathan@codesourcery.com>
* g++.dg/other/forscope1.C: New test.
* g++.dg/other/forscope1.C: New test.
...
...
gcc/testsuite/gcc.c-torture/execute/20010122-1.c
View file @
574f95c4
...
@@ -4,19 +4,21 @@ extern void abort (void);
...
@@ -4,19 +4,21 @@ extern void abort (void);
extern
void
*
alloca
(
__SIZE_TYPE__
);
extern
void
*
alloca
(
__SIZE_TYPE__
);
char
*
dummy
(
void
);
char
*
dummy
(
void
);
#define NOINLINE __attribute__((noinline))
void
*
save_ret1
[
6
];
void
*
save_ret1
[
6
];
void
*
test4a
(
char
*
);
void
*
test4a
(
char
*
);
void
*
test5a
(
char
*
);
void
*
test5a
(
char
*
);
void
*
test6a
(
char
*
);
void
*
test6a
(
char
*
);
void
*
test1
(
void
)
void
NOINLINE
*
test1
(
void
)
{
{
void
*
temp
;
void
*
temp
;
temp
=
__builtin_return_address
(
0
);
temp
=
__builtin_return_address
(
0
);
return
temp
;
return
temp
;
}
}
void
*
test2
(
void
)
void
NOINLINE
*
test2
(
void
)
{
{
void
*
temp
;
void
*
temp
;
dummy
();
dummy
();
...
@@ -24,7 +26,7 @@ void *test2 (void)
...
@@ -24,7 +26,7 @@ void *test2 (void)
return
temp
;
return
temp
;
}
}
void
*
test3
(
void
)
void
NOINLINE
*
test3
(
void
)
{
{
void
*
temp
;
void
*
temp
;
temp
=
__builtin_return_address
(
0
);
temp
=
__builtin_return_address
(
0
);
...
@@ -32,28 +34,28 @@ void *test3 (void)
...
@@ -32,28 +34,28 @@ void *test3 (void)
return
temp
;
return
temp
;
}
}
void
*
test4
(
void
)
void
NOINLINE
*
test4
(
void
)
{
{
char
*
save
=
(
char
*
)
alloca
(
4
);
char
*
save
=
(
char
*
)
alloca
(
4
);
return
test4a
(
save
);
return
test4a
(
save
);
}
}
void
*
test4a
(
char
*
p
)
void
*
NOINLINE
test4a
(
char
*
p
)
{
{
void
*
temp
;
void
*
temp
;
temp
=
__builtin_return_address
(
1
);
temp
=
__builtin_return_address
(
1
);
return
temp
;
return
temp
;
}
}
void
*
test5
(
void
)
void
NOINLINE
*
test5
(
void
)
{
{
char
*
save
=
(
char
*
)
alloca
(
4
);
char
*
save
=
(
char
*
)
alloca
(
4
);
return
test5a
(
save
);
return
test5a
(
save
);
}
}
void
*
test5a
(
char
*
p
)
void
NOINLINE
*
test5a
(
char
*
p
)
{
{
void
*
temp
;
void
*
temp
;
dummy
();
dummy
();
...
@@ -61,14 +63,14 @@ void *test5a (char * p)
...
@@ -61,14 +63,14 @@ void *test5a (char * p)
return
temp
;
return
temp
;
}
}
void
*
test6
(
void
)
void
NOINLINE
*
test6
(
void
)
{
{
char
*
save
=
(
char
*
)
alloca
(
4
);
char
*
save
=
(
char
*
)
alloca
(
4
);
return
test6a
(
save
);
return
test6a
(
save
);
}
}
void
*
test6a
(
char
*
p
)
void
NOINLINE
*
test6a
(
char
*
p
)
{
{
void
*
temp
;
void
*
temp
;
temp
=
__builtin_return_address
(
1
);
temp
=
__builtin_return_address
(
1
);
...
@@ -78,76 +80,72 @@ void *test6a (char * p)
...
@@ -78,76 +80,72 @@ void *test6a (char * p)
void
*
(
*
func1
[
6
])(
void
)
=
{
test1
,
test2
,
test3
,
test4
,
test5
,
test6
};
void
*
(
*
func1
[
6
])(
void
)
=
{
test1
,
test2
,
test3
,
test4
,
test5
,
test6
};
char
*
call_func1_
(
int
i
)
char
*
NOINLINE
call_func1
(
int
i
)
{
{
save_ret1
[
i
]
=
func1
[
i
]
();
save_ret1
[
i
]
=
func1
[
i
]
();
}
}
/* We dont' want call_func1_ to be inlined, so call it through a
pointer. */
void
(
*
call_func1
)(
int
)
=
call_func1_
;
static
void
*
ret_addr
;
static
void
*
ret_addr
;
void
*
save_ret2
[
6
];
void
*
save_ret2
[
6
];
void
test10a
(
char
*
);
void
test10a
(
char
*
);
void
test11a
(
char
*
);
void
test11a
(
char
*
);
void
test12a
(
char
*
);
void
test12a
(
char
*
);
void
test7
(
void
)
void
NOINLINE
test7
(
void
)
{
{
ret_addr
=
__builtin_return_address
(
0
);
ret_addr
=
__builtin_return_address
(
0
);
return
;
return
;
}
}
void
test8
(
void
)
void
NOINLINE
test8
(
void
)
{
{
dummy
();
dummy
();
ret_addr
=
__builtin_return_address
(
0
);
ret_addr
=
__builtin_return_address
(
0
);
return
;
return
;
}
}
void
test9
(
void
)
void
NOINLINE
test9
(
void
)
{
{
ret_addr
=
__builtin_return_address
(
0
);
ret_addr
=
__builtin_return_address
(
0
);
dummy
();
dummy
();
return
;
return
;
}
}
void
test10
(
void
)
void
NOINLINE
test10
(
void
)
{
{
char
*
save
=
(
char
*
)
alloca
(
4
);
char
*
save
=
(
char
*
)
alloca
(
4
);
test10a
(
save
);
test10a
(
save
);
}
}
void
test10a
(
char
*
p
)
void
NOINLINE
test10a
(
char
*
p
)
{
{
ret_addr
=
__builtin_return_address
(
1
);
ret_addr
=
__builtin_return_address
(
1
);
return
;
return
;
}
}
void
test11
(
void
)
void
NOINLINE
test11
(
void
)
{
{
char
*
save
=
(
char
*
)
alloca
(
4
);
char
*
save
=
(
char
*
)
alloca
(
4
);
test11a
(
save
);
test11a
(
save
);
}
}
void
test11a
(
char
*
p
)
void
NOINLINE
test11a
(
char
*
p
)
{
{
dummy
();
dummy
();
ret_addr
=
__builtin_return_address
(
1
);
ret_addr
=
__builtin_return_address
(
1
);
return
;
return
;
}
}
void
test12
(
void
)
void
NOINLINE
test12
(
void
)
{
{
char
*
save
=
(
char
*
)
alloca
(
4
);
char
*
save
=
(
char
*
)
alloca
(
4
);
test12a
(
save
);
test12a
(
save
);
}
}
void
test12a
(
char
*
p
)
void
NOINLINE
test12a
(
char
*
p
)
{
{
ret_addr
=
__builtin_return_address
(
1
);
ret_addr
=
__builtin_return_address
(
1
);
dummy
();
dummy
();
...
@@ -163,16 +161,12 @@ char * dummy (void)
...
@@ -163,16 +161,12 @@ char * dummy (void)
void
(
*
func2
[
6
])(
void
)
=
{
test7
,
test8
,
test9
,
test10
,
test11
,
test12
};
void
(
*
func2
[
6
])(
void
)
=
{
test7
,
test8
,
test9
,
test10
,
test11
,
test12
};
void
call_func2_
(
int
i
)
void
NOINLINE
call_func2
(
int
i
)
{
{
func2
[
i
]
();
func2
[
i
]
();
save_ret2
[
i
]
=
ret_addr
;
save_ret2
[
i
]
=
ret_addr
;
}
}
/* We dont' want call_func2_ to be inlined, so call it through a
pointer. */
void
(
*
call_func2
)(
int
)
=
call_func2_
;
int
main
(
void
)
int
main
(
void
)
{
{
int
i
;
int
i
;
...
...
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