Example #1
0
        public GlobalVariable CreateExprConst(ConstValue Value, Identifier Type)
        {
            lock (ExprConsts)
            {
                var Res = ExprConsts.Find(x => x.TypeOfSelf == Type && Value.IsEqual(x.ConstInitValue));
                if (Res != null)
                {
                    return(Res);
                }
            }

            var Ret = CreateVariable(State.AutoVarName, Type) as GlobalVariable;

            if (Ret == null)
            {
                return(null);
            }

            Ret.ConstInitValue = Value;

            lock (ExprConsts) ExprConsts.Add(Ret);
            if (!State.Arch.ProcessIdentifier(Ret))
            {
                return(null);
            }
            return(Ret);
        }