http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56397
Bug #: 56397 Summary: Floating Point constant in C, with standard C99 Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: argentinator.gcc.questi...@outlook.com Created attachment 29496 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29496 Source code, ".i" file, and compiler output in a ".txt" file. I think that the compiler doesn't recognize properly the type of the floating-point constants for the standard C99. A straight example is the simple sentence: (1.1F & 1); In this case, 1.1F should be considered as a 'float' constant, but the compiler triggers this error message: error: invalid operands to binary & (have 'long double' and 'int') Thus, the compiler considers that 1.1F has type 'long double', but 'float' is expected. I am running GCC 4.6.1 with MinGW, under a Windows 7 system. In my system, FLT_EVAL_METHOD == 2, but I think that this is not the problem, and that we have actually some kind of compiler bug. The source code is just this: --------------------------------------------------- int main(void) { 1.1F & 1; }