[Simh] VAX emulation issues on Raspberry Pi

Paul Koning paulkoning at comcast.net
Tue Jul 31 13:46:10 EDT 2018



> On Jul 31, 2018, at 1:08 PM, Timothe Litt <litt at ieee.org> wrote:
> 
> On 31-Jul-18 12:41, Paul Koning wrote:
>> 
>> 
>> One thing that happens with newer compilers is that they take more advantage of opportunities offered by the letter of the standard.  If you do something that is "undefined", the compiler can do with that whatever it wants to.  If you have code that appears to allow something undefined under certain conditions, the compiler is free to assume that the undefined thing cannot happen and therefore that scenario doesn't occur.
>> 
>> ...
> 
> You probably mean https://people.csail.mit.edu/nickolai/papers/wang-stack-tocs.pdf

No, but thanks for that pointer.  The paper I was thinking about is listed in the references:

Xi Wang, Haogang Chen, Alvin Cheung, Zhihao Jia, Nickolai Zeldovich, and M. Frans Kaashoek. 2012a. Undefined behavior: What happened to my code? In Proceedings of the 3rd Asia-Pacific Workshop on Systems.

> For more reading, see, e.g. http://port70.net/~nsz/c/c99/n1256.html#J.2, https://cacm.acm.org/magazines/2016/3/198849-a-differential-approach-to-undefined-behavior-detection/fulltext, https://blog.regehr.org/archives/1520, https://runtimeverification.com/blog/undefined-behavior-review-and-rv-match/ 
> 
> The last is a competitive analysis - but quite informative nonetheless.
> 
> In additions to -Wall, I also used to compile SimH with -pedantic and -Werror.  And usually one of the -std flags.

Hm, -pedantic is specificially intended to be "the warnings that aren't really useful for general use and real code".

> Another big potential gotcha in SimH is the heavy use of casts, and type aliasing rules (the latter especially problematic in subroutine calls).

Yes, aliasing is a big problem area.  If you get any warnings about strict aliasing, fixing them (via unions) is a good idea.  Alternatively, fno-strict-aliasing can be used but that comes with a performance cost and is not the best answer.

	paul



More information about the Simh mailing list