On Wed, Sep 7, 2011 at 6:18 PM, Danny Yoo <d...@cs.wpi.edu> wrote:
> I'm looking at scheme_is_list in src/list.c, and it looks like there's
> code that's unreachable, unless I'm reading it wrong?!  The body is:
>
>
> int scheme_is_list(Scheme_Object *obj1)
> {
>  Scheme_Object *obj2;
>  int flags;
>
>  if (SCHEME_PAIRP(obj1)) {
>    flags = SCHEME_PAIR_FLAGS(obj1);
>    if (flags & PAIR_FLAG_MASK) {
>      if (flags & PAIR_IS_LIST)
>        return 1;
>      else
>        return 0;
>    }

Notice there is no else here. So if you would go there, then you'd
drop through outside of the whole if

>  } else if (SCHEME_NULLP(obj1))
>    return 1;
>  else
>    return 0;

because the above if is one C expression

And so you'd start running down here

>
>  obj2 = obj1;
>
>  /** more code here */
> }
>
>
> Isn't all the code starting from 'obj2 = obj1' unreachable?
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev
>



-- 
Jay McCarthy <j...@cs.byu.edu>
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay

"The glory of God is Intelligence" - D&C 93

_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Reply via email to