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
ef8614d7
Commit
ef8614d7
authored
20 years ago
by
Jakub Jelinek
Committed by
Jakub Jelinek
20 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* g++.dg/opt/range-test-2.C: New test.
From-SVN: r94235
parent
b8e48b98
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
98 additions
and
0 deletions
+98
-0
gcc/testsuite/ChangeLog
+2
-0
gcc/testsuite/g++.dg/opt/range-test-2.C
+96
-0
No files found.
gcc/testsuite/ChangeLog
View file @
ef8614d7
2005
-
01
-
26
Jakub
Jelinek
<
jakub
@redhat
.
com
>
*
g
++
.
dg
/
opt
/
range
-
test
-
2
.
C
:
New
test
.
PR
rtl
-
optimization
/
19579
*
gcc
.
c
-
torture
/
execute
/
20050124
-
1
.
c
:
New
test
.
...
...
This diff is collapsed.
Click to expand it.
gcc/testsuite/g++.dg/opt/range-test-2.C
0 → 100644
View file @
ef8614d7
// Test fold-const.c (fold_range_test) optimizations.
// { dg-do run } */
// { dg-options "-O2" } */
#include <stdlib.h>
#include <stdio.h>
#include <limits.h>
#if (INT_MAX == 2147483647) && (INT_MIN == -2147483648) \
&& (SCHAR_MIN == -128) && (SCHAR_MAX == 127) \
&& (UCHAR_MIN == 0) && (UCHAR_MAX == 255)
#ifndef T
enum
enum3
{
enum3_zero
,
enum3_one
,
enum3_two
,
enum3_three
,
enum3_four
,
enum3_five
,
enum3_six
,
enum3_seven
};
int
var
;
void
check
()
{
++
var
;
}
#define T(IDX, TYPE, TEST, YESARR, NOARR) \
void __attribute__((noinline)) \
test##IDX (TYPE x) \
{ \
if (TEST) \
check (); \
}
#include "range-test-2.C"
#undef T
int
main
()
{
int
i
,
fails
=
0
;
#define C ,
#define T(IDX, TYPE, TEST, YESARR, NOARR) \
{ \
static TYPE yesarr##IDX [] = YESARR; \
static TYPE noarr##IDX [] = NOARR; \
for (i = 0; i < (int) (sizeof (yesarr##IDX) / sizeof (TYPE)); ++i) \
{ \
var = 0; \
test##IDX (yesarr##IDX [i]); \
if (var != 1) \
printf ("test" #IDX " failed for yesarr [%u]\n", i), ++fails; \
} \
var = 0; \
for (i = 0; i < (int) (sizeof (noarr##IDX) / sizeof (TYPE)); ++i) \
{ \
test##IDX (noarr##IDX [i]); \
if (var != 0) \
printf ("test" #IDX " failed for noarr [%u]\n", i), ++fails; \
} \
}
#include "range-test-2.C"
#undef T
if
(
fails
)
abort
();
exit
(
0
);
}
#else
/* Use `C' instead of `,' below to separate array entries. */
T
(
26
,
enum3
,
x
==
enum3_one
||
x
==
enum3_two
||
x
==
enum3_three
,
{
enum3_one
C
enum3_two
C
enum3_three
},
{
enum3_zero
C
enum3_four
C
enum3_five
C
enum3_six
C
enum3_seven
})
#endif
#else
int
main
(
void
)
{
return
0
;
}
#endif
This diff is collapsed.
Click to expand it.
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