min/max and types
eric pouech
eric.pouech at wanadoo.fr
Fri Sep 14 14:31:57 CDT 2001
just for fun, I tried compiling Wine with Linux latest min/max macros
definitions
Index: include/windef.h
===================================================================
RCS file: /usr/share/cvs/cvsroot/wine/wine/include/windef.h,v
retrieving revision 1.58
diff -u -r1.58 windef.h
--- include/windef.h 2001/07/30 18:57:18 1.58
+++ include/windef.h 2001/09/14 18:06:53
@@ -133,6 +133,27 @@
#define min(a,b) (((a) < (b)) ? (a) : (b))
#endif
#endif /* NOMINMAX */
+#if defined(__WINE__) && defined(__GNUC__)
+#undef max
+#undef min
+#define min(x,y) \
+ ({ const typeof(x) _x = x; \
+ const typeof(y) _y = y; \
+ \
+ (void) (&_x == &_y); \
+ \
+ _x < _y ? _x : _y; \
+ })
+
+#define max(x,y) \
+ ({ const typeof(x) _x = x; \
+ const typeof(y) _y = y; \
+ \
+ (void) (&_x == &_y); \
+ \
+ _x > _y ? _x : _y; \
+ })
+#endif
#ifndef _MAX_PATH
/* FIXME: These are supposed to be in stdlib.h only */
here's the output (the list of types mismatches in min/max calls...)
to whomever feels like fixing them (if needed)
registry.c:386: warning: comparison of distinct pointer types lacks a
cast
registry.c:1246: warning: comparison of distinct pointer types lacks a
cast
trace.c:69: warning: comparison of distinct pointer types lacks a cast
trace.c:147: warning: comparison of distinct pointer types lacks a cast
reg.c:177: warning: comparison of distinct pointer types lacks a cast
reg.c:195: warning: comparison of distinct pointer types lacks a cast
reg.c:209: warning: comparison of distinct pointer types lacks a cast
reg.c:224: warning: comparison of distinct pointer types lacks a cast
reg.c:232: warning: comparison of distinct pointer types lacks a cast
reg.c:306: warning: comparison of distinct pointer types lacks a cast
reg.c:318: warning: comparison of distinct pointer types lacks a cast
reg.c:328: warning: comparison of distinct pointer types lacks a cast
reg.c:379: warning: comparison of distinct pointer types lacks a cast
reg.c:416: warning: comparison of distinct pointer types lacks a cast
reg.c:496: warning: comparison of distinct pointer types lacks a cast
dos_fs.c:2201: warning: comparison of distinct pointer types lacks a
cast
dos_fs.c:2202: warning: comparison of distinct pointer types lacks a
cast
drive.c:926: warning: comparison of distinct pointer types lacks a cast
file.c:1884: warning: comparison of distinct pointer types lacks a cast
profile.c:120: warning: comparison of distinct pointer types lacks a
cast
module.c:1644: warning: comparison of distinct pointer types lacks a
cast
module.c:1645: warning: comparison of distinct pointer types lacks a
cast
heap.c:645: warning: comparison of distinct pointer types lacks a cast
local.c:401: warning: comparison of distinct pointer types lacks a cast
local.c:891: warning: comparison of distinct pointer types lacks a cast
registry.c:507: warning: comparison of distinct pointer types lacks a
cast
version.c:477: warning: comparison of distinct pointer types lacks a
cast
int21.c:857: warning: comparison of distinct pointer types lacks a cast
int21.c:861: warning: comparison of distinct pointer types lacks a cast
ole2nls.c:435: warning: comparison of distinct pointer types lacks a
cast
process.c:1251: warning: comparison of distinct pointer types lacks a
cast
process.c:1276: warning: comparison of distinct pointer types lacks a
cast
process.c:1312: warning: comparison of distinct pointer types lacks a
cast
process.c:1345: warning: comparison of distinct pointer types lacks a
cast
console.c:170: warning: comparison of distinct pointer types lacks a
cast
console.c:429: warning: comparison of distinct pointer types lacks a
cast
console.c:982: warning: comparison of distinct pointer types lacks a
cast
console.c:984: warning: comparison of distinct pointer types lacks a
cast
console.c:1294: warning: comparison of distinct pointer types lacks a
cast
console.c:1345: warning: comparison of distinct pointer types lacks a
cast
registry.c:785: warning: comparison of distinct pointer types lacks a
cast
registry.c:1001: warning: comparison of distinct pointer types lacks a
cast
registry.c:1082: warning: comparison of distinct pointer types lacks a
cast
enhmetafile.c:203: warning: comparison of distinct pointer types lacks a
cast
enhmetafile.c:229: warning: comparison of distinct pointer types lacks a
cast
enhmetafile.c:230: warning: comparison of distinct pointer types lacks a
cast
enhmetafile.c:1702: warning: comparison of distinct pointer types lacks
a cast
dde/misc.c:1963: warning: comparison of distinct pointer types lacks a
cast
message.c:962: warning: comparison of distinct pointer types lacks a
cast
resource.c:320: warning: comparison of distinct pointer types lacks a
cast
resource.c:370: warning: comparison of distinct pointer types lacks a
cast
text.c:318: warning: comparison of distinct pointer types lacks a cast
menu.c:847: warning: comparison of distinct pointer types lacks a cast
menu.c:849: warning: comparison of distinct pointer types lacks a cast
menu.c:917: warning: comparison of distinct pointer types lacks a cast
menu.c:918: warning: comparison of distinct pointer types lacks a cast
menu.c:931: warning: comparison of distinct pointer types lacks a cast
cursoricon.c:519: warning: comparison of distinct pointer types lacks a
cast
timer.c:155: warning: comparison of distinct pointer types lacks a cast
winpos.c:1811: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1812: warning: comparison of distinct pointer types lacks a
cast
winproc.c:1755: warning: comparison of distinct pointer types lacks a
cast
winproc.c:1768: warning: comparison of distinct pointer types lacks a
cast
winproc.c:1901: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1733: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1734: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1738: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1739: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1743: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1744: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1748: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1749: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1815: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1816: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1817: warning: comparison of distinct pointer types lacks a
cast
winpos.c:1818: warning: comparison of distinct pointer types lacks a
cast
xfont.c:3336: warning: comparison of distinct pointer types lacks a cast
xfont.c:3339: warning: comparison of distinct pointer types lacks a cast
lolvldrv.c:106: warning: comparison of distinct pointer types lacks a
cast
mmsystem.c:986: warning: comparison of distinct pointer types lacks a
cast
comboex.c:395: warning: comparison of distinct pointer types lacks a
cast
listview.c:723: warning: comparison of distinct pointer types lacks a
cast
listview.c:780: warning: comparison of distinct pointer types lacks a
cast
listview.c:3123: warning: comparison of distinct pointer types lacks a
cast
listview.c:7940: warning: comparison of distinct pointer types lacks a
cast
propsheet.c:145: warning: comparison of distinct pointer types lacks a
cast
propsheet.c:1998: warning: comparison of distinct pointer types lacks a
cast
rebar.c:1476: warning: comparison of distinct pointer types lacks a cast
rebar.c:1490: warning: comparison of distinct pointer types lacks a cast
tab.c:1080: warning: comparison of distinct pointer types lacks a cast
toolbar.c:1086: warning: comparison of distinct pointer types lacks a
cast
treeview.c:1500: warning: comparison of distinct pointer types lacks a
cast
treeview.c:1594: warning: comparison of distinct pointer types lacks a
cast
treeview.c:2514: warning: comparison of distinct pointer types lacks a
cast
treeview.c:2516: warning: comparison of distinct pointer types lacks a
cast
treeview.c:4218: warning: comparison of distinct pointer types lacks a
cast
treeview.c:4351: warning: comparison of distinct pointer types lacks a
cast
treeview.c:4356: warning: comparison of distinct pointer types lacks a
cast
midi.c:117: warning: comparison of distinct pointer types lacks a cast
audio.c:774: warning: comparison of distinct pointer types lacks a cast
audio.c:1759: warning: comparison of distinct pointer types lacks a cast
midi.c:618: warning: comparison of distinct pointer types lacks a cast
midi.c:968: warning: comparison of distinct pointer types lacks a cast
internet.c:489: warning: comparison of distinct pointer types lacks a
cast
--
---------------
Eric Pouech (http://perso.wanadoo.fr/eric.pouech/)
"The future will be better tomorrow", Vice President Dan Quayle
More information about the wine-devel
mailing list