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;

}

Reply via email to