re PR debug/39485 (-O0 -g still puts whole object to a register)
PR debug/39485 * function.c (use_register_for_decl): When not optimizing, disregard register keyword for variables with types containing methods. From-SVN: r144939
This commit is contained in:
parent
8f5929e11f
commit
d130d647f6
@ -12,6 +12,10 @@
|
||||
* function.c (struct temp_slot): Likewise.
|
||||
* cfgloop.h (struct loop): Likewise.
|
||||
|
||||
PR debug/39485
|
||||
* function.c (use_register_for_decl): When not optimizing, disregard
|
||||
register keyword for variables with types containing methods.
|
||||
|
||||
2009-03-18 Sebastian Pop <sebastian.pop@amd.com>
|
||||
|
||||
PR middle-end/39447
|
||||
|
@ -1942,7 +1942,28 @@ use_register_for_decl (const_tree decl)
|
||||
if (DECL_IGNORED_P (decl))
|
||||
return true;
|
||||
|
||||
return (optimize || DECL_REGISTER (decl));
|
||||
if (optimize)
|
||||
return true;
|
||||
|
||||
if (!DECL_REGISTER (decl))
|
||||
return false;
|
||||
|
||||
switch (TREE_CODE (TREE_TYPE (decl)))
|
||||
{
|
||||
case RECORD_TYPE:
|
||||
case UNION_TYPE:
|
||||
case QUAL_UNION_TYPE:
|
||||
/* When not optimizing, disregard register keyword for variables with
|
||||
types containing methods, otherwise the methods won't be callable
|
||||
from the debugger. */
|
||||
if (TYPE_METHODS (TREE_TYPE (decl)))
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Return true if TYPE should be passed by invisible reference. */
|
||||
|
Loading…
Reference in New Issue
Block a user