Package dk.brics.xact.analysis.soot

Examples of dk.brics.xact.analysis.soot.ControlFlowBuilder.finish()


          replaceNode(graph, old, st);
        }

        @Override
        public void visitArrayWriteStringStm(ArrayWriteStringStm s) {
          replace(s, cfg.finish()); // replace the statement with a nop
        }
        @Override
        public void visitArrayReadStm(ArrayReadStm s) {
          // merge arrays if one array is stored in the other
          if (var_alias.getData(s.getDest()).array) {
View Full Code Here


          // merge arrays if one array is stored in the other
          if (var_alias.getData(s.getDest()).array) {
            var_alias.merge(s.getSource(), s.getDest());
          }
          cfg.addStatement(new VarStm(s.getDest(), s.getSource(), s.getOrigin()));
          replace(s, cfg.finish());
        }
        @Override
        public void visitArrayWriteStm(ArrayWriteStm s) {
          // merge arrays if one array is stored in the other
          if (var_alias.getData(s.getSource()).array) {
View Full Code Here

          // merge arrays if one array is stored in the other
          if (var_alias.getData(s.getSource()).array) {
            var_alias.merge(s.getSource(), s.getDest());
          }
          cfg.addStatement(new VarStm(s.getDest(), s.getSource(), s.getOrigin()));
          replace(s, cfg.finish());
        }
        @Override
        public void visitCallStm(CallStm s) {
          for (int i=0; i<s.getArguments().length; i++) {
            // merge argument and parameter if either one is used as an array
View Full Code Here

        @Override
        public void visitEscapeStm(EscapeStm s) {
          Component c = var_alias.getData(s.getVar());
          if (c.array) {
            cfg.addStatement(new UnknownStm(s.getVar(), s.getOrigin()));
            replace(s, cfg.finish());
          } else {
            cfg.setOrigin(s.getOrigin());
            replace(s, cfg.finish());
          }
        }
View Full Code Here

          if (c.array) {
            cfg.addStatement(new UnknownStm(s.getVar(), s.getOrigin()));
            replace(s, cfg.finish());
          } else {
            cfg.setOrigin(s.getOrigin());
            replace(s, cfg.finish());
          }
        }
      });
    }
    // replace each variable by its component representative IF the representative is an array
View Full Code Here

      }*/
      cfg.addFilter(resultFilter);
      VariableFilter notResult = new VariableFilter(true);
      notResult.removeVariable(call.getResult());
      graph.addEdge(start, cfg.currentStatement(), notResult);
      StatementPair pair = cfg.finish();
      for (Edge<Statement,VariableFilter> edge : graph.getInEdges(call)) {
        graph.addEdge(edge.getFrom(), pair.first, edge.getData());
      }
      for (Edge<Statement,VariableFilter> edge : graph.getOutEdges(call)) {
        graph.addEdge(pair.last, edge.getTo(), edge.getData());
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.