Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!rutgers!lll-lcc!ptsfa!hoptoad!academ!uhnix1!sugar!peter From: peter@sugar.UUCP (Peter da Silva) Newsgroups: comp.lang.c Subject: Re: MSC C arithmetic Message-ID: <526@sugar.UUCP> Date: Thu, 20-Aug-87 19:20:44 EDT Article-I.D.: sugar.526 Posted: Thu Aug 20 19:20:44 1987 Date-Received: Sun, 23-Aug-87 11:23:09 EDT References: <8792@brl-adm.ARPA> Organization: Sugar Land UNIX - Houston, TX Lines: 22 Summary: It's within the spec of the language. > long = int * int. Should it become long = long * long. Depends on how you break up the expression. I would expect the compiler to parse like this: expr /|\ / | \ expr = expr promote to long /|\ / | \ expr * expr leave integer This is more efficient, for one thing. It also means the compiler doesn't have to worry about propogating promotion rules into subexpressions. The expression ends up looking like: long = (long)(int) = (long)(int * int). -- -- Peter da Silva `-_-' ...!seismo!soma!uhnix1!sugar!peter (I said, NO PHOTOS!)