Yes, thank you. I wasn't going to report it as a bug after you pointed out my blatant mistake. Thanks again for the info.
Jon On 4/11/06, Nicolas Blais <[EMAIL PROTECTED]> wrote: > On Tuesday 11 April 2006 19:24, Colin Percival wrote: > > Andy Reitz wrote: > > > So, clearly, something is optimizing the pow() function away when the > > > arguments are hard-coded lvalues, instead of varibles. > > > > > > Now, what that thing *is*, I don't know. > > > > The C compiler precomputes constant expressions; your "pow(2,3)" is > > being rewritten to "8" by the compiler. Similarly, if you write > > "1 + 2 / 3 + 4 * 5 - 6", the C compiler will turn this into "15" > > rather than producing a series of instructions which computes the > > expression. > > > > When you reference variables, this optimization isn't possible, since > > those variables might be modified before you reach the line where > > they are used. (Obviously this doesn't happen in your program, but > > the compiler isn't smart enough to figure that out.) > > > > Colin Percival > > +1. The compiler sees constants differently from variables (which reside in > a > memory space). With the constant, the optimizer can rewrite the equation > with > its answer. > > Anyhow, it can't be seen as a bug because you should include the math > library > whenever you're using a function from it (see man pow). Therefore, if you > would have included the library in the first place, you would have never > found this 'oddity'. > > Nicolas. > > -- > FreeBSD 7.0-CURRENT #1: Sat Apr 8 21:33:25 EDT 2006 > [EMAIL PROTECTED]:/usr/obj/usr/src/sys/CLK01A > PGP? : http://www.clkroot.net/security/nb_root.asc > > _______________________________________________ email@example.com mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"