gcc11 -Wall -Wpedantic cleanup (post TCL9) FUN2CD() CD2FUN()
FUN2CD() on a function pointer still raises -Wpedantic warning due to the officially undefined behaviour as defined by C standards. So added FUN2CD() and CD2FUN() to at least mark the call-sites to help with identification and ignoring -Wpedantic based on the source file context given in the compiler output.
This commit is contained in:
parent
c21e182b2c
commit
48c99a7b1d
|
|
@ -712,11 +712,12 @@ nmwVerifyLabelFunc2(scx, label, tpath, cd)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
nmwVerifyTileFunc(tile, plane, func)
|
nmwVerifyTileFunc(
|
||||||
Tile *tile; /* Tile that is connected to this net. */
|
Tile *tile, /* Tile that is connected to this net. */
|
||||||
int plane; /* Plane index of the tile. */
|
int plane, /* Plane index of the tile. */
|
||||||
int (*func)(); /* Processing function for each tile. */
|
ClientData cdata) /* Processing function for each tile. */
|
||||||
{
|
{
|
||||||
|
int (*func)(Tile *) = (int (*)(Tile *))CD2FUN(cdata);
|
||||||
SearchContext scx;
|
SearchContext scx;
|
||||||
char label[TERMLENGTH];
|
char label[TERMLENGTH];
|
||||||
TerminalPath tpath;
|
TerminalPath tpath;
|
||||||
|
|
@ -733,7 +734,7 @@ nmwVerifyTileFunc(tile, plane, func)
|
||||||
tpath.tp_next = label;
|
tpath.tp_next = label;
|
||||||
tpath.tp_last = &label[TERMLENGTH-1];
|
tpath.tp_last = &label[TERMLENGTH-1];
|
||||||
(void) DBTreeSrLabels(&scx, &DBConnectTbl[TiGetType(tile)],
|
(void) DBTreeSrLabels(&scx, &DBConnectTbl[TiGetType(tile)],
|
||||||
0, &tpath, TF_LABEL_ATTACH, nmwVerifyLabelFunc2, (ClientData) func);
|
0, &tpath, TF_LABEL_ATTACH, nmwVerifyLabelFunc2, cdata);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -764,7 +765,7 @@ nmwVerifyLabelFunc(rect, name, label, cd)
|
||||||
Rect *rect; /* Area of the label, in EditUse coords. */
|
Rect *rect; /* Area of the label, in EditUse coords. */
|
||||||
char *name; /* Hierarchical name of label. */
|
char *name; /* Hierarchical name of label. */
|
||||||
Label *label; /* Actual label structure. */
|
Label *label; /* Actual label structure. */
|
||||||
ClientData cd; /* Client data for nmwVerifyTileFunc */
|
ClientData cd; /* Client data for nmwVerifyTileFunc (function pointer) */
|
||||||
{
|
{
|
||||||
TileTypeBitMask *mask;
|
TileTypeBitMask *mask;
|
||||||
int i;
|
int i;
|
||||||
|
|
@ -1287,7 +1288,7 @@ nmAllFunc(name, firstInNet, fp)
|
||||||
nmwVerifyCount = 0;
|
nmwVerifyCount = 0;
|
||||||
nmMeasureCount = 0;
|
nmMeasureCount = 0;
|
||||||
(void) DBSrLabelLoc(EditCellUse, name, nmwVerifyLabelFunc,
|
(void) DBSrLabelLoc(EditCellUse, name, nmwVerifyLabelFunc,
|
||||||
(ClientData) nmwMeasureTileFunc);
|
FUN2CD(nmwMeasureTileFunc));
|
||||||
|
|
||||||
if (fp!=NULL)
|
if (fp!=NULL)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -77,9 +77,11 @@ typedef pointertype ClientData;
|
||||||
*/
|
*/
|
||||||
#define CD2PTR(cd) ((void*)(cd))
|
#define CD2PTR(cd) ((void*)(cd))
|
||||||
#define CD2INT(cd) ((pointertype)(cd))
|
#define CD2INT(cd) ((pointertype)(cd))
|
||||||
|
#define CD2FUN(cd) ((const void*)(cd))
|
||||||
|
|
||||||
#define PTR2CD(data) ((ClientData)(data))
|
#define PTR2CD(data) ((ClientData)(data))
|
||||||
#define INT2CD(data) ((ClientData)(pointertype)(data))
|
#define INT2CD(data) ((ClientData)(pointertype)(data))
|
||||||
|
#define FUN2CD(data) ((ClientData)(const void*)(data))
|
||||||
|
|
||||||
/* --------------------------- Booleans ------------------------------- */
|
/* --------------------------- Booleans ------------------------------- */
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue