c-typeck.c (convert_for_assignment): Tightened up pointer converstions that differ in signedness.
* c-typeck.c (convert_for_assignment): Tightened up pointer converstions that differ in signedness. Apple Radar 2535328. From-SVN: r85114
This commit is contained in:
parent
4c61a9fd7b
commit
0c6d842886
3 changed files with 32 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2004-07-23 Mike Stump <mrs@apple.com>
|
||||
|
||||
* c-typeck.c (convert_for_assignment): Tightened up pointer converstions
|
||||
that differ in signedness.
|
||||
|
||||
2004-07-23 Zack Weinberg <zack@codesourcery.com>
|
||||
|
||||
* genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
|
||||
|
|
|
@ -3472,7 +3472,7 @@ convert_for_assignment (tree type, tree rhs, const char *errtype,
|
|||
|| target_cmp)
|
||||
;
|
||||
/* If there is a mismatch, do warn. */
|
||||
else if (pedantic)
|
||||
else
|
||||
warn_for_assignment ("pointer targets in %s differ in signedness",
|
||||
errtype, funname, parmnum);
|
||||
}
|
||||
|
|
26
gcc/testsuite/gcc.dg/conv-2.c
Normal file
26
gcc/testsuite/gcc.dg/conv-2.c
Normal file
|
@ -0,0 +1,26 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "" } */
|
||||
|
||||
void f1(long *);
|
||||
void f2(unsigned long *);
|
||||
|
||||
int main()
|
||||
{
|
||||
long *lp;
|
||||
unsigned long *ulp;
|
||||
char *cp;
|
||||
unsigned char *ucp;
|
||||
signed char *scp;
|
||||
|
||||
ulp = lp; /* { dg-warning " pointer targets in assignment differ in signedness" } */
|
||||
lp = ulp; /* { dg-warning " pointer targets in assignment differ in signedness" } */
|
||||
f1(ulp); /* { dg-warning " differ in signedness" } */
|
||||
f2(lp); /* { dg-warning " differ in signedness" } */
|
||||
|
||||
cp = ucp; /* { dg-warning " pointer targets in assignment differ in signedness" } */
|
||||
cp = scp; /* { dg-warning " pointer targets in assignment differ in signedness" } */
|
||||
ucp = scp; /* { dg-warning " pointer targets in assignment differ in signedness" } */
|
||||
ucp = cp; /* { dg-warning " pointer targets in assignment differ in signedness" } */
|
||||
scp = ucp; /* { dg-warning " pointer targets in assignment differ in signedness" } */
|
||||
scp = cp; /* { dg-warning " pointer targets in assignment differ in signedness" } */
|
||||
}
|
Loading…
Add table
Reference in a new issue