This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
function cast leads to gcc abort command
- From: buzush <buzush at gmail dot com>
- To: gcc-help at gcc dot gnu dot org
- Date: Wed, 18 Dec 2013 04:25:14 -0800 (PST)
- Subject: function cast leads to gcc abort command
- Authentication-results: sourceware.org; auth=none
hi,
in the following code func.c :
#include <stdio.h>
int Myfunc1(int i, int z)
{
return i;
}
int main()
{
int ans;
/* casting the function into an 'int (int)' function */
ans = ((int(*)(int))(Myfunc1))(5);
printf("ans: %d\n\n", ans);
return 0;
}
i tried to cast an int(int,int) function into an int(int) function an got
the gcc warning and note:
func.c:13:32: warning: function called through a non-compatible type
[enabled by default]
func.c:13:32: note: if this code is reached, the program will abort
and when trying to run i get:
Illegal instruction (core dumped)
(but if i compile this file with a .cpp ending with the gcc compiler it
works OK.)
can anyone explain the problem of the compiler in the .c case?
--
View this message in context: http://gcc.1065356.n5.nabble.com/function-cast-leads-to-gcc-abort-command-tp996603.html
Sent from the gcc - Help mailing list archive at Nabble.com.