[gambit-list] Gambit no longer compiles with Clang >= 3.7

Alex Silva asandroq at gmail.com
Tue Jan 19 08:51:42 EST 2016


Hallo,

On 19/01/16 14:39, Marc Feeley wrote:
> Strange that this is undefined behavior in C.  Is it only when left shifting a constant or any signed integer expression?  In general I can understand it is undefined because it depends on the size of the integer type, but here ___TB is 3 so -7<<___TB will fit in any integer type including 8 bit integers!
>

The standard call those "expressions", so it shouldn't be limited to
constants only. But those get caught during compile time. Interestingly,
for right shifts the result is implementation-defined instead of undefined.

> Also, I don’t understand why gsi gets stuck.  After all you only got warnings.
>

Given the undefined behaviour the compiler can do whatever it wants,
including optimizing those expressions away, but I am just guessing.

> Can you give more details, such as OS and Gambit versions?  I use the latest clang from Xcode and don’t have this problem.
> 

This is Ubuntu 14.04 with Clang 3.7.1. I downloaded the LLVM binary
distribution from http://www.llvm.org/. Gambit version 4.8.3.

Cheers,
-- 
-alex
http://unendli.ch/




More information about the Gambit-list mailing list