<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div><font face="Calibri, sans-serif"> Typecode = [0 .. 16_FFFFF]; (* can fit in 20 bits *)</font></div><div><font face="Calibri, sans-serif">tc: Typecode.</font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif"> IF (tc # RTType.NoSuchType) AND (0 <= tc) AND (tc < n) THEN</font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">if(((INT64)(((INT64)(M3_INT64(0)))))>((INT64)(((INT64)(*(UINT32*)(&tc_L_68))))))goto L4F;</font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">gcc:</font></div><div><font face="Calibri, sans-serif">../src/runtime/common/RTutils.m3:233: warning: comparison is always false due to limited range of data type</font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">I'd like to be warning-free.</font></div><div><font face="Calibri, sans-serif">I think this is the only class of warning I have now.</font></div><div><br></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">Thoughts?</font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">Could the frontend eliminate some of this stuff?</font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">Otherwise I might do constant-folding in the C backend.</font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">I had offered a patch months ago that would do some simple stuff in the frontend</font></div><div><font face="Calibri, sans-serif">involving comparisons and subranges.</font></div><div><font face="Calibri, sans-serif">Try that again?</font></div><div><font face="Calibri, sans-serif">(i.e. see how many warnings it removes, see if it suffices?)</font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">I might just try hiding constants inside functions for now, at least zero since it is the biggest offender:.</font></div><div><font face="Calibri, sans-serif">static int Zero(void) { return 0; }</font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">Thanks,</font></div><div><font face="Calibri, sans-serif"> - Jay</font></div> </div></body>
</html>