var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value in a temporary instead of invoking the macro...
* var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value in a temporary instead of invoking the macro multiple times. (track_expr_p): Likewise. From-SVN: r159058
This commit is contained in:
parent
371b334e65
commit
dbb2a2cba8
@ -1,3 +1,9 @@
|
||||
2010-05-05 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
|
||||
in a temporary instead of invoking the macro multiple times.
|
||||
(track_expr_p): Likewise.
|
||||
|
||||
2010-05-04 Neil Vachharajani <nvachhar@google.com>
|
||||
|
||||
* doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
|
||||
|
@ -1573,9 +1573,12 @@ static inline tree
|
||||
var_debug_decl (tree decl)
|
||||
{
|
||||
if (decl && DECL_P (decl)
|
||||
&& DECL_DEBUG_EXPR_IS_FROM (decl) && DECL_DEBUG_EXPR (decl)
|
||||
&& DECL_P (DECL_DEBUG_EXPR (decl)))
|
||||
decl = DECL_DEBUG_EXPR (decl);
|
||||
&& DECL_DEBUG_EXPR_IS_FROM (decl))
|
||||
{
|
||||
tree debugdecl = DECL_DEBUG_EXPR (decl);
|
||||
if (debugdecl && DECL_P (debugdecl))
|
||||
decl = debugdecl;
|
||||
}
|
||||
|
||||
return decl;
|
||||
}
|
||||
@ -4497,12 +4500,14 @@ track_expr_p (tree expr, bool need_rtl)
|
||||
don't need to track this expression if the ultimate declaration is
|
||||
ignored. */
|
||||
realdecl = expr;
|
||||
if (DECL_DEBUG_EXPR_IS_FROM (realdecl) && DECL_DEBUG_EXPR (realdecl))
|
||||
if (DECL_DEBUG_EXPR_IS_FROM (realdecl))
|
||||
{
|
||||
realdecl = DECL_DEBUG_EXPR (realdecl);
|
||||
if (realdecl == NULL_TREE)
|
||||
realdecl = expr;
|
||||
/* ??? We don't yet know how to emit DW_OP_piece for variable
|
||||
that has been SRA'ed. */
|
||||
if (!DECL_P (realdecl))
|
||||
else if (!DECL_P (realdecl))
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user