From 0d701fcab65792391516940fe3425249ffb90c70 Mon Sep 17 00:00:00 2001 From: sjfink Date: Mon, 10 Dec 2007 05:28:02 +0000 Subject: [PATCH] fix bug 1847274 GVSlice fails to check command-line arguments git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2141 f5eafffb-2e1d-0410-98e4-8ec43c5233c4 --- .../src/com/ibm/wala/examples/drivers/GVSlice.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/GVSlice.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/GVSlice.java index c3eef28ce..fdcef67f9 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/GVSlice.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/GVSlice.java @@ -41,8 +41,10 @@ import com.ibm.wala.ipa.slicer.Slicer.ControlDependenceOptions; import com.ibm.wala.ipa.slicer.Slicer.DataDependenceOptions; import com.ibm.wala.ipa.slicer.Statement.Kind; import com.ibm.wala.properties.WalaProperties; +import com.ibm.wala.ssa.SSAAbstractInvokeInstruction; import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.ssa.SSAInvokeInstruction; +import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.collections.Filter; import com.ibm.wala.util.debug.Assertions; import com.ibm.wala.util.graph.Graph; @@ -236,6 +238,11 @@ public class GVSlice { if (s.getKind() == Kind.NORMAL) { SSAInstruction st = ((NormalStatement) s).getInstruction(); if (st instanceof SSAInvokeInstruction) { + SSAAbstractInvokeInstruction call = (SSAAbstractInvokeInstruction)st; + if (call.getCallSite().getDeclaredTarget().getReturnType().equals(TypeReference.Void)) { + throw new IllegalArgumentException("this driver computes forward slices from the return value of calls.\n" + "" + + "Method " +call.getCallSite().getDeclaredTarget().getSignature() + " returns void."); + } return new ParamStatement.NormalReturnCaller(s.getNode(), (SSAInvokeInstruction) st); } else { return s;