예제 #1
0
        void OnObject(ref Expression e)
        {
            if (e == null || IsNonNullExpression(e))
            {
                return;
            }

            switch (e.ExpressionType)
            {
            case ExpressionType.LoadLocal:
            {
                var s = e as LoadLocal;
                ValidPointers.Add(s.Variable);
                break;
            }

            case ExpressionType.LoadArgument:
            {
                var s = e as LoadArgument;
                ValidPointers.Add(s.Parameter);
                break;
            }
            }

            switch (e.ExpressionType)
            {
            case ExpressionType.AddressOf:
            {
                var s = (AddressOf)e;
                OnObject(ref s.Operand);
                break;
            }

            default:
            {
                e = new LoadPtr(e);
                break;
            }
            }
        }
예제 #2
0
 public virtual void WriteLoadPtr(LoadPtr s, ExpressionUsage u)
 {
     UnsupportedExpression(s);
 }