Deaktivieren des Fehlers „Umwandlung vom Zeiger zum kleineren Typ uint32_t“ in Clang

Ich arbeite an einem Schulprojekt, bei dem ein großer Teil des C ++ - Codes auf eine experimentelle Hardware portiert wird. Leider handelt es sich bei dieser Hardware um 64-Bit-Hardware, und der Code enthält viele Zeigerarithmetikinstanzen, die 32-Bit-Zeiger erwarten, d. H., Dies ist häufig der Fallreinterpret_cast<uint32_t>(ptr).

Es wäre sehr mühsam, sie einzeln durchzugehen, und da dies sowieso ein experimentelles Projekt ist, bin ich froh, mich mit einer "hackigen" Problemumgehung zufrieden zu geben. Deshalb habe ich stattdessen die Implementierung von malloc dahingehend geändert, dass niemals mehr als 4 GB Speicher zugewiesen werden. Technisch sollten diese Abgüsse daher gültig sein.

Die Frage ist, wie erkläre ich das Clang? Der Fehler, den ich erhalte, ist:error: cast from pointer to smaller type 'uint32_t' (aka 'unsigned int') loses information. Gibt es eine Möglichkeit, es zu deaktivieren?

Danke, David

Antworten auf die Frage(5)

Ihre Antwort auf die Frage