int x=5;
printf ("%d\n" , (int)pow(x,2));
printf ("%d\n" , (int)pow(5,2));
I get different results if working on:
- Windows 7 and 10, gcc version: gcc (tdm-1) 5.1.0 from last MinGW was the same some years ago with previous versions: the results are 24 and 25;
- Linux, many distro, many gcc versions: the results are 25 and 25.
To me, the Windows answer should be the same as the first argument is int 5 in both cases.
Could you please give a clarification. I wasn't able to find any justification for my univ. students.
Thank you in advance
Firstly, this is neither a bug report, nor a feature request; it is a support request, (for which use of this ticket system is not appropriate); as such it should have been directed to the mailing list, where it would attain better exposure, and have a greater chance of attracting a fruitful discussion, (which it will not achieve here).
Secondly, the compiler you are using is badged as a TDM release, which is not a genuine MinGW.org product. Indeed, the TDM distributor is not authorized to use the MinGW trademark, so describing the TDM product as "MinGW" is, technically, a trademark infringement.
Finally, I've compiled your code fragment, (with addition of appropriate header files, and wrapping it within a main function), using my genuine (albeit experimental) MinGW build of GCC-9.2, (built as a Linux hosted cross-compiler), with mingwrt-5.2.2 and w32api-5.2.2, and running under Wine-4.18, I cannot reproduce your issue ... I see results of 25 in both cases.
Dear developers, when I run the following code:
I get different results if working on: - Windows 7 and 10, gcc version: gcc (tdm-1) 5.1.0 from last MinGW was the same some years ago with previous versions: the results are 24 and 25; - Linux, many distro, many gcc versions: the results are 25 and 25. To me, the Windows answer should be the same as the first argument is int 5 in both cases. Could you please give a clarification. I wasn't able to find any justification for my univ. students. Thank you in advance