re PR c/13382 (Type information for const pointer disappears during optimisation.)
PR c/13382 * c-typeck.c (convert_for_assignment): When converting from integral type to pointer type, always call convert. From-SVN: r74960
This commit is contained in:
parent
adb83beed2
commit
b300633777
@ -1,3 +1,9 @@
|
||||
2003-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
|
||||
PR c/13382
|
||||
* c-typeck.c (convert_for_assignment): When converting from
|
||||
integral type to pointer type, always call convert.
|
||||
|
||||
2003-12-22 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* doc/invoke.texi: Deprecate -fwritable-strings.
|
||||
|
@ -3608,12 +3608,10 @@ convert_for_assignment (tree type, tree rhs, const char *errtype,
|
||||
&& TREE_CODE (TREE_TYPE (rhs)) == INTEGER_TYPE
|
||||
&& TREE_CODE (TREE_OPERAND (rhs, 0)) == INTEGER_CST
|
||||
&& integer_zerop (TREE_OPERAND (rhs, 0))))
|
||||
{
|
||||
warn_for_assignment ("%s makes pointer from integer without a cast",
|
||||
errtype, funname, parmnum);
|
||||
return convert (type, rhs);
|
||||
}
|
||||
return null_pointer_node;
|
||||
|
||||
return convert (type, rhs);
|
||||
}
|
||||
else if (codel == INTEGER_TYPE && coder == POINTER_TYPE)
|
||||
{
|
||||
|
@ -1,3 +1,7 @@
|
||||
2003-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
|
||||
* gcc.dg/null-pointer-1.c: New test.
|
||||
|
||||
2003-12-22 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* g++.old-deja/g++.jason/template18.C: Remove.
|
||||
|
20
gcc/testsuite/gcc.dg/null-pointer-1.c
Normal file
20
gcc/testsuite/gcc.dg/null-pointer-1.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* PR c/13382 */
|
||||
/* Origin: Richard Hutchinson <richard.hutchinson@asa.co.uk> */
|
||||
|
||||
/* Verify that the null initializer is converted to the right
|
||||
pointer type. */
|
||||
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O" } */
|
||||
|
||||
struct t
|
||||
{
|
||||
int aMember;
|
||||
};
|
||||
|
||||
struct t *const aPointer = 0;
|
||||
|
||||
void foo()
|
||||
{
|
||||
int anInt = (aPointer == 0) ? 0 : aPointer->aMember;
|
||||
}
|
Loading…
Reference in New Issue
Block a user