aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Smith <dannysmith@users.sourceforge.net>2004-11-06 00:32:18 +0000
committerJanis Johnson <janis@gcc.gnu.org>2004-11-06 00:32:18 +0000
commit637022d94553359f5008b47699c84da48a25eee0 (patch)
treecea11bd772c8a58d601b69f28609c8bfd05b8409
parentbc54e9de0cb96964dc0be8da3ec929e4e615d0c1 (diff)
downloadgcc-637022d94553359f5008b47699c84da48a25eee0.zip
gcc-637022d94553359f5008b47699c84da48a25eee0.tar.gz
gcc-637022d94553359f5008b47699c84da48a25eee0.tar.bz2
struct-layout-1_generate.c (main): Generate a call to fflush(stdout) before abort.
2004-11-05 Danny Smith <dannysmith@users.sourceforge.net> * gcc.dg/compat/struct-layout-1_generate.c (main): Generate a call to fflush(stdout) before abort. (my_ffsll): New function. (generate_fields): Use it. From-SVN: r90155
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c23
2 files changed, 27 insertions, 3 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 11071c9..826c3c0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2004-11-05 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * gcc.dg/compat/struct-layout-1_generate.c (main): Generate a
+ call to fflush(stdout) before abort.
+ (my_ffsll): New function.
+ (generate_fields): Use it.
+
2004-11-05 Joseph S. Myers <joseph@codesourcery.com>
* gcc.dg/init-undef-1.c: New test.
diff --git a/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c b/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c
index bf40426..dab2496 100644
--- a/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c
+++ b/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c
@@ -563,7 +563,10 @@ int main (void)\n\
#include \"t%03d_test.h\"\n\
#undef TX\n\
if (fails)\n\
- abort ();\n\
+ {\n\
+ fflush (stdout);\n\
+ abort ();\n\
+ }\n\
exit (0);\n\
}\n", srcdir, srcdir, filecnt, filecnt);
fclose (outfile);
@@ -1198,6 +1201,20 @@ choose_type (enum FEATURE features, struct entry *e, int r)
abort ();
}
+/* This is from gcc.c-torture/execute/builtin-bitops-1.c. */
+static int
+my_ffsll (unsigned long long x)
+{
+ int i;
+ if (x == 0)
+ return 0;
+ /* We've tested LLONG_MAX for 64 bits so this should be safe. */
+ for (i = 0; i < 64; i++)
+ if (x & (1ULL << i))
+ break;
+ return i + 1;
+}
+
void
generate_fields (enum FEATURE features, struct entry *e, struct entry *parent,
int len)
@@ -1310,9 +1327,9 @@ generate_fields (enum FEATURE features, struct entry *e, struct entry *parent,
case 'B': ma = 1; break;
case ' ':
if (e[j].type->type == TYPE_UENUM)
- mi = ffsll (e[j].type->maxval + 1) - 1;
+ mi = my_ffsll (e[j].type->maxval + 1) - 1;
else if (e[j].type->type == TYPE_SENUM)
- mi = ffsll (e[j].type->maxval + 1);
+ mi = my_ffsll (e[j].type->maxval + 1);
else
abort ();
if (!mi)