re PR objc/29195 (ICE in expand_expr_real_1, at expr.c:6932)

2006-09-26  Andrew Pinski  <pinskia@physics.uc.edu>

        PR objc/29195
        * objc-act.c (objc_push_parm): If we change the type of the
        decl, relayout the decl.
2006-09-26  Andrew Pinski  <pinskia@physics.uc.edu>

        PR objc/29195
        * objc/compile/method-1.m: New test.

From-SVN: r117229
This commit is contained in:
Andrew Pinski 2006-09-26 08:36:21 -07:00
parent 32d662aa80
commit e91de072ad
4 changed files with 46 additions and 12 deletions

View file

@ -1,3 +1,9 @@
2006-09-26 Andrew Pinski <pinskia@physics.uc.edu>
PR objc/29195
* objc-act.c (objc_push_parm): If we change the type of the
decl, relayout the decl.
2006-09-19 Eric Christopher <echristo@apple.com>
* objc-act.c (JBLEN): Rename to OBJC_JBLEN,

View file

@ -8223,11 +8223,22 @@ static GTY(()) tree objc_parmlist = NULL_TREE;
static void
objc_push_parm (tree parm)
{
bool relayout_needed = false;
/* Decay arrays and functions into pointers. */
if (TREE_CODE (TREE_TYPE (parm)) == ARRAY_TYPE)
TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (TREE_TYPE (parm)));
{
TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (TREE_TYPE (parm)));
relayout_needed = true;
}
else if (TREE_CODE (TREE_TYPE (parm)) == FUNCTION_TYPE)
TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (parm));
{
TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (parm));
relayout_needed = true;
}
if (relayout_needed)
relayout_decl (parm);
DECL_ARG_TYPE (parm)
= lang_hooks.types.type_promotes_to (TREE_TYPE (parm));

View file

@ -1,18 +1,23 @@
2006-09-26 Andrew Pinski <pinskia@physics.uc.edu>
PR objc/29195
* objc/compile/method-1.m: New test.
2006-09-25 Lee Millward <lee.millward@codesourcery.com>
PR c++/26938
* g++.dg/template/crash58.C: New test.
* g++.dg/parse/crash28.C: Adjust error markers.
* g++.dg/template/crash34.C: Likewise.
* g++.dg/template/friend31.C: Likewise.
* g++.dg/template/crash32.C: Likewise.
PR c++/26938
* g++.dg/template/crash58.C: New test.
* g++.dg/parse/crash28.C: Adjust error markers.
* g++.dg/template/crash34.C: Likewise.
* g++.dg/template/friend31.C: Likewise.
* g++.dg/template/crash32.C: Likewise.
PR c++/27329
* g++.dg/template/crash59.C: New test.
PR c++/27329
* g++.dg/template/crash59.C: New test.
PR c++/27667
* g++.dg/template/spec33.C: New test.
* g++.old-deja/g++.pt/spec20.C: Adjust error markers.
* g++.dg/template/spec33.C: New test.
* g++.old-deja/g++.pt/spec20.C: Adjust error markers.
2006-09-24 Zdenek Dvorak <dvorakz@suse.cz>
Adam Nemet <anemet@caviumnetworks.com>

View file

@ -0,0 +1,12 @@
/* PR objc/29195 */
/* Test that array decls are changed to a pointer type
correctly and make sure we don't crash because the
decl was not relayed out. */
@ implementation NGActiveSocket
+ (void) socketPair:(int [2])
_pair
{
_pair[0] = 0;
}
@end