GCC mit "pedantic"
-
Hallo,
ich habe folgende kleine frage:
Warum bekomme ich mit dem GCC auf "pedantic" bei folgendem code
typedef struct { int32_t s32ErrNo; const int8_t *ps8zErrString; } sErrDesc_t; static const sErrDesc_t asErrDescs[] = { /* lErrNo, ps8zErrString */ {MB_ERR_VEC_FULL , "There is no more space in the vector." }, {MB_ERR_VEC_INVALID_SIZE , "A vector cannot be of size zero." }, {MB_ERR_VEC_INVALID_VEC , "The pointer given as vector is invalid." }, {MB_ERR_VEC_INVALID_PTR , "The pointer given as data is invalid." }, {MB_ERR_VEC_INVALID_STR , "The pointer given as dest. is invalid." }, {MB_ERR_VEC_INVALID_IDX , "The idx given as destination is invalid." }, {MB_ERR_VEC_NOT_CONTIGUOUS , "The insertion point is invalid." }, {MB_ERR_VEC_NOT_FOUND , "The byte specified could not be found." } };
diese Warnung an den Kopf geworfen:
Fehler: Zeigerziele in Initialisierung unterscheiden sich im Vorzeichenbesitz [-Wpointer-sign]
Hab schon ne Stunde gegoogelt, ja, auch mit englischen Übersetzungen. Es gibt ein paar erzeugende Beispiele wo klar ist dass beispielsweise die Zuweiseung von int8_t* zu uint8_t * eine Warnung hervorruft.
In meinem Fall ist mir aber nicht klar welche implizite Typzuweisung ich übersehe. C strings sind ja normalerweise signed...
Help
Martin
-
Hint:
char signed char unsigned char
sind 3 unterschiedliche Typen, nicht 2.
Edit: Wobei die Fehlermeldung auch schwachsinnig ist, schlechte Lokalisierung des gcc?