Hallo zusammen
Ich bin noch über einen interessantes Problem gestossen. Hierzu mal eine Funktion, in der das Problem auftritt:
Code
static void _pascal DrawValue(word pos, word val, word suf)
{
static char ldv[5 + 2 + 1];
word l;
l = sprintf(&ldv, "%5u", val);
if (suf == TRUE)
{
char *s = "00";
l += sprintf(ldv + l, "%s", s); // XXX: With &ldv -> W115 -> Bug in Open Watcom?
}
DrawText(pos, &ldv, l);
}
Display More
Wenn ich beim zweiten sprintf ein Kaufmanns-Und bei ldv verwende, dann werden die beiden 0 nicht in den Buffer geschrieben. Ich erhalte immerhin eine Warnung W115. Ohne Kaufmanns-Und funktioniert es tadellos.
Dazu habe ich folgenden Post gefunden:
W115 warning not emitted for an array member of a struct · Issue #1158 · open-watcom/open-watcom-v2
As seen from the test case below, only the C++ compiler catches all 3, whereas the C compiler only catches the plain array variable. OW toolchain is the CI…
github.com
Scheint ein Open Watcom Fehlerzu sein. Oder ich mache ganz krumme Dinger...
Ist schon irgendjemand über das Problem gestolpert?
Gruss Andreas