Package dk.brics.xact.analysis.soot

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


        public void visitArrayReadStm(ArrayReadStm s) {
          // 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
View Full Code Here


        public void visitArrayWriteStm(ArrayWriteStm s) {
          // 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++) {
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

          returnFilter.addVariable(target.getParameter(i));
        }
      }
      cfg.addFilter(argsOnly);
      for (int i=0; i<args.length; i++) {
        cfg.addStatement(new VarStm(params[i], args[i], call.getOrigin()));
      }
      graph.addEdge(cfg.currentStatement(), target.getEntry(), paramsOnly);
      cfg.moveToStatement(target.getExit());
      cfg.addStatement(new VarStm(call.getResult(), target.getReturnVar(), call.getOrigin()), returnFilter);
      /*for (int i=0; i<args.length; i++) {
View Full Code Here

      for (int i=0; i<args.length; i++) {
        cfg.addStatement(new VarStm(params[i], args[i], call.getOrigin()));
      }
      graph.addEdge(cfg.currentStatement(), target.getEntry(), paramsOnly);
      cfg.moveToStatement(target.getExit());
      cfg.addStatement(new VarStm(call.getResult(), target.getReturnVar(), call.getOrigin()), returnFilter);
      /*for (int i=0; i<args.length; i++) {
        if (call.isArgumentMutable(i)) {
          cfg.addStatement(new VarStm(call.getArgument(i), target.getParameter(i), call.getOrigin()));
        }
      }*/
 
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.