Consider:
extern void *bar (void);
int
foo (unsigned int *p)
{
const void *r = bar ();
if (r >= (const void *) *p)
return 1;
return 0;
}
t03.generic looks like so.
foo (p)
{
void * D.1155;
unsigned int D.1156;
int D.1157;
const void * r;
D.1155 = bar ();
r = D.1155;
D.1156 = *p;
if (D.1156 <= r)
{
D.1157 = 1;
return D.1157;
}
else
{
}
D.1157 = 0;
return D.1157;
}
Note that "if (D.1156 <= r)" has a type mismatch, namely an integer type
v.s. a pointer type.
This PR is the real cause of PR 21021.
--
Summary: Type mismatch in a comparison.
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kazu at cs dot umass dot edu
CC: dnovillo at redhat dot com,gcc-bugs at gcc dot gnu dot
org
OtherBugsDependingO 21021
nThis:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21024