Esempio n. 1
0
 public StackVarHidingProofGenerator(ProofGenerationParams i_pgp, StackVariableHidingStrategyDecl i_strategy)
     : base(i_pgp)
 {
     strategy = i_strategy;
     hiddenVariablesMethodName = strategy.MethodName;
     hiddenVariables           = new HashSet <string>(strategy.Variables);
     suppressedPCs             = new HashSet <ArmadaPC>();
 }
Esempio n. 2
0
        public StackVarHidingProofGenerator(ProofGenerationParams i_pgp, StackVariableHidingStrategyDecl i_strategy)
            : base(i_pgp, false)
        {
            strategy = i_strategy;
            hiddenVariablesMethodName = strategy.MethodName;
            hiddenVariables           = new HashSet <string>(strategy.Variables);

            foreach (var varName in strategy.Variables)
            {
                var v = pgp.symbolsLow.Lookup(hiddenVariablesMethodName, varName);
                if (!(v is MethodStackFrameUnaddressableLocalArmadaVariable))
                {
                    AH.PrintError(pgp.prog, $"Variable {hiddenVariablesMethodName}.{varName} isn't a noaddr stack variable, but stack_var_hiding can only hide noaddr stack variables");
                }
            }
        }