Yeah, the LDBL_EPSILON macro is getting undefined and redefined in
the etc/config/src/float_defs.h header.
file stdcxx/trunk/etc/config/float_defs.h:
30 # if defined (__EDG__) && !defined (__INTEL_COMPILER)
31 // define gcc 4 intrinsics otherwise not recognized
32 // by the front end
...
67 # if __GNUC__ < 4
68
69 // prevent the propriterary gcc __extension__ from
70 // throwing the vanilla EDG demo for a loop
71
72 # undef LDBL_EPSILON
73 # undef LDBL_MIN
74 # undef LDBL_MAX
75
76 // redefine to prevent compilation errors
77 # define LDBL_EPSILON 1.0842021724855044e-19L
...
Does the block starting at line 30 really apply to all compilers using
an EDG front-end other than Intel C++? Or only to GCC? The comment
suggests that it applies only to GCC.
If so, either the directive at line 30 should be written as follows:
30 # if defined (__EDG__) && defined (__GNUC__) && !defined
(__INTEL_COMPILER)
31 // define gcc 4 intrinsics otherwise not recognized
32 // by the front end
Or the directive at line 67 should be written like this:
67 # if defined (__GNUC__) && __GNUC__ < 4
Oui?
Brad.
> -----Original Message-----
> From: Martin Sebor (JIRA) [mailto:[EMAIL PROTECTED]
> Sent: Monday, March 31, 2008 7:02 PM
> To: Eric Lemings
> Subject: [jira] Commented: (STDCXX-708) [HP aCC
> 6.15/HP-UX/IPF] 18.numeric.special.float fails assertions
>
>
> [
> https://issues.apache.org/jira/browse/STDCXX-708?page=com.atla
> ssian.jira.plugin.system.issuetabpanels:comment-tabpanel&focus
> edCommentId=12583959#action_12583959 ]
>
> Martin Sebor commented on STDCXX-708:
> -------------------------------------
>
> I wonder if the EDG-specific macros in
> [float_defs.h|http://svn.apache.org/repos/asf/stdcxx/branches/
> 4.2.x/etc/config/src/float_defs.h] might have something to do
> with it. Recall that HP aCC 6 is based on the EDG front end
> and like other such compilers {{#defines}} the {{\_\_EDG__}}
> macro. The preprocessor conditional needs to be adjusted
> along the same lines as the one in
> [_config.h|http://svn.apache.org/repos/asf/stdcxx/trunk/includ
> e/rw/_config.h]:
>
> {noformat}
> 190 // NOTE: the __EDG__ macro is #defined by most
> EDG-based compilers
> 191
> 192 #if defined (__EDG__) \
> 193 && !defined (__DECCXX) \
> 194 && !defined (__HP_aCC) \
> 195 && !defined (__INTEL_COMPILER) \
> 196 && !defined (_SGI_COMPILER_VERSION)
> {noformat}
>
> > [HP aCC 6.15/HP-UX/IPF] 18.numeric.special.float fails assertions
> > -----------------------------------------------------------------
> >
> > Key: STDCXX-708
> > URL:
> https://issues.apache.org/jira/browse/STDCXX-708
> > Project: C++ Standard Library
> > Issue Type: Bug
> > Components: Tests
> > Affects Versions: trunk
> > Environment: {noformat}
> > $ uname -srm && aCC -V
> > HP-UX B.11.31 ia64
> > aCC: HP C/aC++ B3910B A.06.15 [May 16 2007]
> > {noformat}
> > Reporter: Martin Sebor
> > Assignee: Eric Lemings
> > Fix For: 4.2.1
> >
> > Original Estimate: 4h
> > Time Spent: 6h
> > Remaining Estimate: 0h
> >
> > When compiled with HP aCC 6 on HP-UX running on IPF
> hardware the newly added test
> [18.numeric.special.float.cpp|http://svn.apache.org/viewvc/std
> cxx/trunk/tests/support/18.numeric.special.float.cpp] fails a
> bunch of assertions.
> > One of them look like a configuration problem in the
> library (has_denorm) while others (min(), max(), and
> epsilon()) like problems in the test
> > {noformat}
> > $ nice gmake 18.numeric.special.float -r &&
> ./18.numeric.special.float
> > aCC -c -D_RWSTDDEBUG -mt -I/amd/devco/sebor/stdcxx/include \
> > -I/build/sebor/stdcxx-aCC-6.15-15D/include
> -I/amd/devco/sebor/stdcxx/tests/include \
> > -AA -g +d +DD64 +w +W392 +W655 +W684 +W818 +W819 +W849
> +W2193 +W2236 +W2261 \
> > +W2340 +W2401 +W2487 +W4227 +W4229 +W4231 +W4235 +W4237
> +W4249 +W4255 +W4272 \
> > +W4284 +W4285 +W4286
> /amd/devco/sebor/stdcxx/tests/support/18.numeric.special.float.cpp
> > "/amd/devco/sebor/stdcxx/include/limits", line 449: warning
> #4070-D: floating
> > point underflow exception
> > _RWSTD_STATIC_FUN (long double, (min), _RWSTD_LDBL_MIN)
> > ^
> > aCC 18.numeric.special.float.o -o 18.numeric.special.float \
> > -L/build/sebor/stdcxx-aCC-6.15-15D/rwtest -lrwtest15D -AA
> +nostl -Wl,+s -mt +DD64 \
> > -L/build/sebor/stdcxx-aCC-6.15-15D/lib \
> >
> -Wl,+b/build/sebor/stdcxx-aCC-6.15-15D/lib:/build/sebor/stdcxx
> -aCC-6.15-15D/rwtest \
> > -lstd15D -lm
> > rm 18.numeric.special.float.o
> > # INFO (S1) (10 lines):
> > # TEXT:
> > # COMPILER: HP aCC, __HP_aCC = 61500, __EDG_VERSION__ = 308
> > # ENVIRONMENT: ia64 running hp-ux
> > # FILE: 18.numeric.special.float.cpp
> > # COMPILED: Jan 24 2008, 17:28:57
> > # COMMENT: floating specializations
> > ############################################################
> > # CLAUSE: numeric.special
> > # ASSERTION (S7) (4 lines):
> > # TEXT: numeric_limits<float>::has_denorm == -1, got 1
> > # CLAUSE: numeric.special
> > # LINE: 1366
> > # ASSERTION (S7) (4 lines):
> > # TEXT: numeric_limits<double>::has_denorm == -1, got 1
> > # CLAUSE: numeric.special
> > # LINE: 1366
> > # ASSERTION (S7) (4 lines):
> > # TEXT: numeric_limits<long double>::min() == 3.3621e-4932,
> got 3.3621e-4932
> > # CLAUSE: numeric.special
> > # LINE: 1253
> > # ASSERTION (S7) (4 lines):
> > # TEXT: numeric_limits<long double>::max() ==
> 1.18973e+4932, got 1.18973e+4932
> > # CLAUSE: numeric.special
> > # LINE: 1254
> > # ASSERTION (S7) (4 lines):
> > # TEXT: numeric_limits<long double>::epsilon() ==
> 1.92593e-34, got 1.0842e-19
> > # CLAUSE: numeric.special
> > # LINE: 1262
> > # ASSERTION (S7) (4 lines):
> > # TEXT: numeric_limits<long double>::has_denorm == -1, got 1
> > # CLAUSE: numeric.special
> > # LINE: 1366
> > # +-----------------------+----------+----------+----------+
> > # | DIAGNOSTIC | ACTIVE | TOTAL | INACTIVE |
> > # +-----------------------+----------+----------+----------+
> > # | (S1) INFO | 1 | 1 | 0% |
> > # | (S5) WARNING | 0 | 3 | 100% |
> > # | (S7) ASSERTION | 6 | 134 | 95% |
> > # +-----------------------+----------+----------+----------+
> > {noformat}
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>