This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: fixinc regression for <math.h> with C++ on Solaris 9
- From: Gerald Pfeifer <gerald at pfeifer dot com>
- To: Bruce Korb <bkorb at veritas dot com>
- Cc: Bruce Korb <bkorb at gnu dot org>,Nathanael Nerode <neroden at twcny dot rr dot com>, gcc at gcc dot gnu dot org,Eric Botcazou <ebotcazou at libertysurf dot fr>
- Date: Mon, 19 Jan 2004 22:06:22 +0100 (CET)
- Subject: Re: fixinc regression for <math.h> with C++ on Solaris 9
- References: <Pine.BSF.4.58.0401192041300.85894@acrux.dbai.tuwien.ac.at><400C402E.20F9625@veritas.com>
On Mon, 19 Jan 2004, Bruce Korb wrote:
> I don't have CVS access here. It might be interesting to do a ``cvs log''
> on gcc/fixinc/tests/base/math.h and see what happened to the same code.
It seems the code is still there. The only relevant changes I found were
the following, which seems harmless,
date: 2003/01/04 21:14:54; author: korbb; state: Exp; lines: +6 -6
branches: 1.11.4;
When wrapping files, guard with both the fix name and the file name
and
revision 1.13
date: 2003/08/01 22:48:24; author: neroden; state: Exp; lines: +1 -0
* fixinc/inclhack.def (broken_cabs): Make matching more generous.
* fixinc/fixincl.x: Regenerate.
* fixinc/tests/base/math.h: Regenerate to match test_text change.
which lead me to the following:
revision 1.160
date: 2003/07/09 21:00:01; author: neroden; state: Exp; lines: +3 -2
* fixinc/inclhack.def (math_exception): Improve bypass and comment.
* fixinc/fixincl.x: Rebuild.
Index: inclhack.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fixinc/inclhack.def,v
retrieving revision 1.159
retrieving revision 1.160
diff -u -3 -p -r1.159 -r1.160
--- inclhack.def 8 Jul 2003 20:42:19 -0000 1.159
+++ inclhack.def 9 Jul 2003 21:00:01 -0000 1.160
@@ -1680,7 +1680,8 @@ fix = {
/*
- * Some math.h files define struct exception, which conflicts with
+ * Some math.h files define struct exception (it's in the System V
+ * Interface Definition), which conflicts with
* the class exception defined in the C++ file std/stdexcept.h. We
* redefine it to __math_exception. This is not a great fix, but I
* haven't been able to think of anything better.
@@ -1692,7 +1693,7 @@ fix = {
hackname = math_exception;
files = math.h;
select = "struct exception";
- bypass = 'We have a problem when using C\+\+';
+ bypass = '__cplusplus';
c_fix = wrap;
c_fix_arg = "#ifdef __cplusplus\n"
> If it is still there, then either the fix does not trigger on the real
> header but does on the test, or else someone committed an inclhack
> change without running the fixinc ``make check'' on the result.
>From my results above, it seems that Nathanel indeed only ran the
test weeks after making the patch. fixinc is black magic to me, but
might that be the culprit?
> Just from inspection, there are *two* patches related to exceptions:
>
> sunos_matherr_decl and math_exception
>
> but I do not see how they could interact on the header in question.
> They should be re-ordered, though. It looks like the second fix would
> put a ``struct exception;'' in before the ``#ifdef __cplusplus'' thing.
> (The bypass clause should prevent the application of the fix on the
> header in question:
Hmm, that one's definitely a bit too steep for me. :-)
If there's any patch you'd like me to test, or any (header) file you'd
like me to send, I'll happily do that, though.
Gerald