On Aug 13, 2015, at 3:05 AM, Richard Biener <richard.guent...@gmail.com> wrote:
> Ok, then guard the << >> with __GCC__ and do the expensive bit stuff
> otherwise.  Just to cater for other host compilers doing sth unsensibly
> implementation defined.

Ick.  The guard should be specific to the implementation defined semantic or 
undefined semantic, and then when compiling with gcc, we turn it on.  My take 
is that when we do this, we should add the 5 or 10 other most popular compilers 
to the list of how they behave so that they all do the cheap path code as well. 
 If the language standard were serious in this area, it would specify a header 
file that can define the implementation defined and undefined semantics that 
are interesting for portable code.  It isn’t.  If it were, we would then just 
use the standard defined guards.

The language standard should be improved to directly state the possible 
implementation choices and to require the implementation to communicate to the 
program which choice it made.

Reply via email to