|
From: <sv...@va...> - 2006-11-24 23:32:58
|
Author: sewardj
Date: 2006-11-24 23:32:55 +0000 (Fri, 24 Nov 2006)
New Revision: 1684
Log:
New function dopyIRBBExceptStmts which makes it a bit easier to write
tools.
Modified:
trunk/priv/ir/irdefs.c
trunk/pub/libvex_ir.h
Modified: trunk/priv/ir/irdefs.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/ir/irdefs.c 2006-11-22 23:31:37 UTC (rev 1683)
+++ trunk/priv/ir/irdefs.c 2006-11-24 23:32:55 UTC (rev 1684)
@@ -1382,13 +1382,19 @@
{
Int i;
IRStmt** sts2;
- IRBB* bb2 =3D emptyIRBB();
- bb2->tyenv =3D dopyIRTypeEnv(bb->tyenv);
+ IRBB* bb2 =3D dopyIRBBExceptStmts(bb);
bb2->stmts_used =3D bb2->stmts_size =3D bb->stmts_used;
sts2 =3D LibVEX_Alloc(bb2->stmts_used * sizeof(IRStmt*));
for (i =3D 0; i < bb2->stmts_used; i++)
sts2[i] =3D dopyIRStmt(bb->stmts[i]);
bb2->stmts =3D sts2;
+ return bb2;
+}
+
+IRBB* dopyIRBBExceptStmts ( IRBB* bb )
+{
+ IRBB* bb2 =3D emptyIRBB();
+ bb2->tyenv =3D dopyIRTypeEnv(bb->tyenv);
bb2->next =3D dopyIRExpr(bb->next);
bb2->jumpkind =3D bb->jumpkind;
return bb2;
Modified: trunk/pub/libvex_ir.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/pub/libvex_ir.h 2006-11-22 23:31:37 UTC (rev 1683)
+++ trunk/pub/libvex_ir.h 2006-11-24 23:32:55 UTC (rev 1684)
@@ -1541,7 +1541,8 @@
/* Deep-copy an IRBB */
extern IRBB* dopyIRBB ( IRBB* );
=20
-/* Deep-copy an IRBB, except for the statements list. */
+/* Deep-copy an IRBB, except for the statements list, which set to be
+ a new, empty, list of statements. */
extern IRBB* dopyIRBBExceptStmts ( IRBB* );
=20
/* Pretty-print an IRBB */
|