On 11/06/2012 21:20, t-rexky wrote:
#include<math.h>
#include<stdio.h>

int main() {
  printf("%lf\n", acos(0.5));
  return 0;
}

First, note that acos(0.5) is a "double" expression so its format should be %f. However %lf is tolerated and this should not cause any trouble.

Second, the acos() call will be internally replaced by __builtin_acos() which may be directly replaced by its result, if it can be computed at compile time (which is the case in your example). Try to add -fno-builtin on the command line to see if the same odd things happen.

nextstep[Tests]$xgcc acos_test.c -o acos_test
<built-in>:0: warning: '__builtin_acos' used but never defined
/NextDeveloper/Headers/ansi/math.h:55: warning: 'acos' used but never defined

The problem may be in your math.h. This header is not provided by GCC, but by your math library. You should have a look to the indicated line to see what is there.

Also, looking at the preprocessor output may help.
Try this:
  xgcc -E acos_test.c
Then search for acos to see if there is nothing wierd.

Good luck.

--
Vincent Rivière

Reply via email to