https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103487

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2023-11-19
                 CC|rth at gcc dot gnu.org             |
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.

Here is the begining of the fixes, there are more that needs to be done:
```
diff --git a/contrib/paranoia.cc b/contrib/paranoia.cc
index a7821c42603..2955e3619dd 100644
--- a/contrib/paranoia.cc
+++ b/contrib/paranoia.cc
@@ -132,7 +132,6 @@ lines
      I'm doing this in C++ so that I can do operator overloading and not
      have to modify so damned much of the existing code.  */

-  extern "C" {
 #include <stdio.h>
 #include <stddef.h>
 #include <limits.h>
@@ -151,6 +150,8 @@ lines

 #include "ansidecl.h"
 #include "auto-host.h"
+#include "system.h"
+#include "coretypes.h"
 #include "hwint.h"

 #undef EXTRA_MODES_FILE
@@ -169,13 +170,8 @@ lines
     };
 #undef DEFTREECODE

-#define class klass
-
 #include "real.h"

-#undef class
-  }
-
 /* We never produce signals from the library.  Thus setjmp need do nothing. 
*/
 #undef setjmp
 #define setjmp(x)  (0)
```

real_from_integer for an example now takes signop instead of an int:
/home/apinski/src/upstream-gcc-match/gcc/gcc/../contrib/paranoia.cc:254:41:
error: invalid conversion from ‘int’ to ‘signop’ [-fpermissive]

and even the number of arguments has been changed:
/home/apinski/src/upstream-gcc-match/gcc/gcc/../contrib/paranoia.cc:254:21:
error: too many arguments to function ‘void real_from_integer(real_value*,
format_helper, const wide_int_ref&, signop)’

machine_mode is now not just an enum.

And a few others.

Reply via email to