From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- gcc/testsuite/gcc.dg/complete-port.c | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/complete-port.c (limited to 'gcc/testsuite/gcc.dg/complete-port.c') diff --git a/gcc/testsuite/gcc.dg/complete-port.c b/gcc/testsuite/gcc.dg/complete-port.c new file mode 100644 index 000000000..c8ebcc10e --- /dev/null +++ b/gcc/testsuite/gcc.dg/complete-port.c @@ -0,0 +1,96 @@ +/* This small program uses all the arithmetic operators that may + generate calls to library routines which must be implemented in + port-specific assembly language. */ +/* { dg-do link } */ + +#include + +int foo (); +double dfoo (); +void discard (int); +void ddiscard (double); + +int +main (void) +{ + int a = foo (), b = foo (); + unsigned int au = foo (), bu = foo (); + float af = dfoo (), bf = dfoo (); + double ad = dfoo (), bd = dfoo (); + + discard (a * b); + discard (a / b); + discard (a % b); + + discard (au / bu); + discard (au % bu); + + discard (a >> b); + discard (a << b); + + discard (au >> bu); + discard (au << bu); + + ddiscard (ad + bd); + ddiscard (ad - bd); + ddiscard (ad * bd); + ddiscard (ad / bd); + ddiscard (-ad); + + ddiscard (af + bf); + ddiscard (af - bf); + ddiscard (af * bf); + ddiscard (af / bf); + ddiscard (-af); + + discard ((int) ad); + discard ((int) af); + + ddiscard ((double) a); + ddiscard ((float) a); + ddiscard ((float) ad); + + discard (ad == bd); + discard (ad < bd); + discard (ad > bd); + discard (ad != bd); + discard (ad <= bd); + discard (ad >= bd); + + discard (af == bf); + discard (af < bf); + discard (af > bf); + discard (af != bf); + discard (af <= bf); + discard (af >= bf); + + return 0; +} + +void +discard (x) + int x __attribute__((__unused__)); +{} + +void +ddiscard (x) + double x __attribute__((__unused__)); +{} + +int +foo () +{ + static int table[] = {20, 69, 4, 12}; + static int idx; + + return table[idx++]; +} + +double +dfoo () +{ + static double table[] = {20.4, 69.96, 4.4, 202.202}; + static int idx; + + return table[idx++]; +} -- cgit v1.2.3