File warn.patch of Package gdb

--- sim/common/gentmap.c
+++ sim/common/gentmap.c
@@ -2,6 +2,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 
 struct tdefs {
   char *symbol;
--- sim/ppc/debug.c
+++ sim/ppc/debug.c
@@ -29,6 +29,10 @@
 #include <stdlib.h>
 #endif
 
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
 int ppc_trace[nr_trace_options];
 
 typedef struct _trace_option_descriptor {
--- sim/ppc/ppc-instructions
+++ sim/ppc/ppc-instructions
@@ -3965,12 +3965,14 @@
 	                         fpscr_vxsnan | fpscr_vximz,
 	                         0, /*single?*/
 	                         0) /*negate?*/) {
+	  union { double d; unsigned64 u; } tmp;
 	  invalid_arithemetic_operation(processor, cia,
-	                                (unsigned64*)&product, *frA, 0, *frC,
+	                                &tmp.u, *frA, 0, *frC,
 	                                0, /*instruction_is_frsp*/
 	                                0, /*instruction_is_convert_to_64bit*/
 	                                0, /*instruction_is_convert_to_32bit*/
 	                                0); /*single-precision*/
+	  product = tmp.d;
 	}
 	else {
 	  /*HACK!*/
@@ -4010,12 +4012,14 @@
 	                         fpscr_vxsnan | fpscr_vximz,
 	                         1, /*single?*/
 	                         0) /*negate?*/) {
+	  union { double d; unsigned64 u; } tmp;
 	  invalid_arithemetic_operation(processor, cia,
-	                                (unsigned64*)&product, *frA, 0, *frC,
+	                                &tmp.u, *frA, 0, *frC,
 	                                0, /*instruction_is_frsp*/
 	                                0, /*instruction_is_convert_to_64bit*/
 	                                0, /*instruction_is_convert_to_32bit*/
 	                                0); /*single-precision*/
+	  product = tmp.d;
 	}
 	else {
 	  /*HACK!*/
@@ -4055,12 +4059,14 @@
 	                         fpscr_vxsnan | fpscr_vximz,
 	                         0, /*single?*/
 	                         0) /*negate?*/) {
+	  union { double d; unsigned64 u; } tmp;
 	  invalid_arithemetic_operation(processor, cia,
-	                                (unsigned64*)&product, *frA, 0, *frC,
+	                                &tmp.u, *frA, 0, *frC,
 	                                0, /*instruction_is_frsp*/
 	                                0, /*instruction_is_convert_to_64bit*/
 	                                0, /*instruction_is_convert_to_32bit*/
 	                                0); /*single-precision*/
+	  product = tmp.d;
 	}
 	else {
 	  /*HACK!*/
@@ -4100,12 +4106,14 @@
 	                         fpscr_vxsnan | fpscr_vximz,
 	                         1, /*single?*/
 	                         0) /*negate?*/) {
+	  union { double d; unsigned64 u; } tmp;
 	  invalid_arithemetic_operation(processor, cia,
-	                                (unsigned64*)&product, *frA, 0, *frC,
+	                                &tmp.u, *frA, 0, *frC,
 	                                0, /*instruction_is_frsp*/
 	                                0, /*instruction_is_convert_to_64bit*/
 	                                0, /*instruction_is_convert_to_32bit*/
 	                                0); /*single-precision*/
+	  product = tmp.d;
 	}
 	else {
 	  /*HACK!*/
@@ -4145,12 +4153,14 @@
 	                         fpscr_vxsnan | fpscr_vximz,
 	                         0, /*single?*/
 	                         0) /*negate?*/) {
+	  union { double d; unsigned64 u; } tmp;
 	  invalid_arithemetic_operation(processor, cia,
-	                                (unsigned64*)&product, *frA, 0, *frC,
+	                                &tmp.u, *frA, 0, *frC,
 	                                0, /*instruction_is_frsp*/
 	                                0, /*instruction_is_convert_to_64bit*/
 	                                0, /*instruction_is_convert_to_32bit*/
 	                                0); /*single-precision*/
+	  product = tmp.d;
 	}
 	else {
 	  /*HACK!*/
@@ -4190,12 +4200,14 @@
 	                         fpscr_vxsnan | fpscr_vximz,
 	                         1, /*single?*/
 	                         0) /*negate?*/) {
+	  union { double d; unsigned64 u; } tmp;
 	  invalid_arithemetic_operation(processor, cia,
-	                                (unsigned64*)&product, *frA, 0, *frC,
+	                                &tmp.u, *frA, 0, *frC,
 	                                0, /*instruction_is_frsp*/
 	                                0, /*instruction_is_convert_to_64bit*/
 	                                0, /*instruction_is_convert_to_32bit*/
 	                                0); /*single-precision*/
+	  product = tmp.d;
 	}
 	else {
 	  /*HACK!*/
@@ -4235,12 +4247,14 @@
 	                         fpscr_vxsnan | fpscr_vximz,
 	                         0, /*single?*/
 	                         0) /*negate?*/) {
+	  union { double d; unsigned64 u; } tmp;
 	  invalid_arithemetic_operation(processor, cia,
-	                                (unsigned64*)&product, *frA, 0, *frC,
+	                                &tmp.u, *frA, 0, *frC,
 	                                0, /*instruction_is_frsp*/
 	                                0, /*instruction_is_convert_to_64bit*/
 	                                0, /*instruction_is_convert_to_32bit*/
 	                                0); /*single-precision*/
+	  product = tmp.d;
 	}
 	else {
 	  /*HACK!*/
@@ -4280,12 +4294,14 @@
 	                         fpscr_vxsnan | fpscr_vximz,
 	                         1, /*single?*/
 	                         0) /*negate?*/) {
+	  union { double d; unsigned64 u; } tmp;
 	  invalid_arithemetic_operation(processor, cia,
-	                                (unsigned64*)&product, *frA, 0, *frC,
+	                                &tmp.u, *frA, 0, *frC,
 	                                0, /*instruction_is_frsp*/
 	                                0, /*instruction_is_convert_to_64bit*/
 	                                0, /*instruction_is_convert_to_32bit*/
 	                                0); /*single-precision*/
+	  product = tmp.d;
 	}
 	else {
 	  /*HACK!*/
openSUSE Build Service is sponsored by