summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-10-21 17:09:41 -0700
committerRichard Henderson <rth@gcc.gnu.org>2002-10-21 17:09:41 -0700
commitad03e4c4c79faea50454da03208b037dedeb4927 (patch)
tree89ed00a5d9c2cef42696dffda1d771baa825c5b3 /contrib
parentf8eef883323f1cf0b1e442bb285a51216e41ddd6 (diff)
downloadgcc-ad03e4c4c79faea50454da03208b037dedeb4927.tar.gz
paranoia.cc (real_c_float::image): Accomodate size of real_internal format.
* paranoia.cc (real_c_float::image): Accomodate size of real_internal format. (main): Unbuffer stdio. Add real_internal format. (floor_log2_wide): New. From-SVN: r58395
Diffstat (limited to 'contrib')
-rw-r--r--contrib/ChangeLog7
-rw-r--r--contrib/paranoia.cc19
2 files changed, 25 insertions, 1 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index c28fd46ad55..a8adeb3439a 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,10 @@
+2002-10-21 Richard Henderson <rth@redhat.com>
+
+ * paranoia.cc (real_c_float::image): Accomodate size of
+ real_internal format.
+ (main): Unbuffer stdio. Add real_internal format.
+ (floor_log2_wide): New.
+
2002-10-16 Richard Henderson <rth@redhat.com>
* paranoia.cc (ENUM_BITFIELD): New.
diff --git a/contrib/paranoia.cc b/contrib/paranoia.cc
index fafb92b708f..694d3d4509b 100644
--- a/contrib/paranoia.cc
+++ b/contrib/paranoia.cc
@@ -195,7 +195,10 @@ class real_c_float
static const enum machine_mode MODE = SFmode;
private:
- long image[128 / 32];
+ static const int external_max = 128 / 32;
+ static const int internal_max
+ = (sizeof (REAL_VALUE_TYPE) + sizeof (long) + 1) / sizeof (long);
+ long image[external_max < internal_max ? internal_max : external_max];
void from_long(long);
void from_str(const char *);
@@ -2607,6 +2610,9 @@ Paranoia<FLOAT>::notify (const char *s)
int main(int ac, char **av)
{
+ setbuf(stdout, NULL);
+ setbuf(stderr, NULL);
+
while (1)
switch (getopt (ac, av, "pvg:fdl"))
{
@@ -2639,6 +2645,7 @@ int main(int ac, char **av)
F(i370_double),
F(c4x_single),
F(c4x_extended),
+ F(real_internal),
#undef F
};
@@ -2697,3 +2704,13 @@ fancy_abort ()
}
int target_flags = 0;
+
+extern "C" int
+floor_log2_wide (unsigned HOST_WIDE_INT x)
+{
+ int log = -1;
+ while (x != 0)
+ log++,
+ x >>= 1;
+ return log;
+}