...
The assignment ipp = &ip
is unsafe not safe because it would allow allows the valid code that follows to reference the value of the volatile object i
through the non-volatile-qualified reference ip
. In this example, the compiler may optimize out the entire if
block because i != 0
must be false if i
is not volatile.
...
This example compiles without warning on Microsoft Visual Studio 2013 when compiled in C mode (/TC
) but causes errors when compiled in C++ mode (/TP
).
GCC 4.8.1 generates a warning but compiles successfully.
...