Bug 36332 - [4.4 Regression] FAIL: gcc.dg/torture/type-generic-1.c execution test on powerpc-*
Summary: [4.4 Regression] FAIL: gcc.dg/torture/type-generic-1.c execution test on pow...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: testsuite (show other bugs)
Version: 4.4.0
: P1 normal
Target Milestone: 4.4.0
Assignee: Jakub Jelinek
URL: http://gcc.gnu.org/ml/gcc-patches/200...
Keywords: wrong-code
Depends on:
Blocks:
 
Reported: 2008-05-26 10:01 UTC by Dominique d'Humieres
Modified: 2008-09-02 19:32 UTC (History)
3 users (show)

See Also:
Host:
Target: powerpc*-*-*
Build:
Known to work:
Known to fail:
Last reconfirmed: 2008-09-01 18:23:13


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dominique d'Humieres 2008-05-26 10:01:37 UTC
Since at least revision 135800 (135787 is working) the tests gcc.dg/torture/type-generic-1.c andg++.dg/torture/type-generic-1.C  fail on powerpc-apple-darwin* (see http://gcc.gnu.org/ml/gcc-testresults/2008-05/msg02062.html).
Comment 1 Andrew Pinski 2008-05-28 07:57:44 UTC
It is also happening on powerpc-linux-gnu:
http://gcc.gnu.org/ml/gcc-testresults/2008-05/msg02422.html
Comment 2 Janis Johnson 2008-07-08 21:51:21 UTC
The tests fail on powerpc*-unknown-linux-gnu with 128-bit long doubles because __builtin_fpclassify claims that __LDBL_MAX__ is infinite, not normal.  Here's a small testcase minimized from type-generic-1.c:

#define FP_NAN 1
#define FP_INFINITE 2
#define FP_NORMAL 3
#define FP_SUBNORMAL 4
#define FP_ZERO 5
#define fpclassify(X) __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, (X))

int
main ()
{
  volatile long double ld;

  ld = __LDBL_MAX__;
  if (fpclassify (ld) != FP_NORMAL)
    __builtin_abort ();

  return 0;
}
Comment 3 Jakub Jelinek 2008-09-02 18:47:52 UTC
Subject: Bug 36332

Author: jakub
Date: Tue Sep  2 18:46:29 2008
New Revision: 139906

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=139906
Log:
	PR target/36332
	* real.c (real_maxval): Clear a lower bit to make real_maxval
	match get_max_float for IBM long double format.

	* gcc.c-torture/execute/ieee/pr36332.c: New test.

Added:
    trunk/gcc/testsuite/gcc.c-torture/execute/ieee/pr36332.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/real.c
    trunk/gcc/testsuite/ChangeLog

Comment 4 Jakub Jelinek 2008-09-02 19:13:16 UTC
Subject: Bug 36332

Author: jakub
Date: Tue Sep  2 19:11:55 2008
New Revision: 139907

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=139907
Log:
	PR target/36332
	* real.c (real_maxval): Clear a lower bit to make real_maxval
	match get_max_float for IBM long double format.

	* gcc.c-torture/execute/ieee/pr36332.c: New test.

Added:
    branches/gcc-4_3-branch/gcc/testsuite/gcc.c-torture/execute/ieee/pr36332.c
Modified:
    branches/gcc-4_3-branch/gcc/ChangeLog
    branches/gcc-4_3-branch/gcc/real.c
    branches/gcc-4_3-branch/gcc/testsuite/ChangeLog

Comment 5 Jakub Jelinek 2008-09-02 19:32:47 UTC
Fixed.