http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52615

             Bug #: 52615
           Summary: function pointer casting bug
    Classification: Unclassified
           Product: gcc
           Version: 4.6.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: cglb...@gmail.com


gcc compiler can't create any working code for my programm.

Full programm here:

int a(char x)
{
  return x;
}

int main()
{
  float result;

  result = (*(float (*)(double, int, char *))a)(4.5f, 7, "Hello");
  return 0;
}

gcc input:

    gcc main.c

gcc output: 

main.c: In function 'main':
main.c:10:48: warning: function called through a non-compatible type [enabled
by
 default]
main.c:10:48: note: if this code is reached, the program will abort

Compiler create executable file. But it doesn't work.
Other compilers(g++, MSVC 10) works fine. No warnings and working programm.

Reply via email to