April 05, 2007 [Issue 1098] New: symbol collision in d/dmd/expression.c between math.h and port.h | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=1098 Summary: symbol collision in d/dmd/expression.c between math.h and port.h Product: DGCC aka GDC Version: 0.23 Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: glue layer AssignedTo: dvdfrdmn@users.sf.net ReportedBy: mpb.mail@gmail.com d/dmd/expression.c includes math.h and port.h in that order. math.h defines macros for: isnan isfinite signbit port.h then declares a struct with: static int isnan(double); static int isfinite(double); static int isinfinity(double); static int signbit(double); The macros collide with the names in the struct declaration, causing a fatal compile time error. A kludge (that seems to work) is to change expression.c to include port.h *before* math.h. A clean long term solution is either: a) make sure no file ever includes both math.h and port.h (this is probably impractical) or... b) rename the offending names in port.h (and everywhere that refers to them) I am not sure if this bug should be fixed in DGCC or upstream in the DMD compiler sources. Thanks! -mpb -- |
April 20, 2007 [Issue 1098] symbol collision in d/dmd/expression.c between math.h and port.h | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1098 bugzilla@digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #1 from bugzilla@digitalmars.com 2007-04-20 13:19 ------- Fixed DMD 1.013 -- |
Copyright © 1999-2021 by the D Language Foundation