Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

'this' null testing patches for the release 8.0.x code line #36

Conversation

MichaelJCaruso
Copy link
Contributor

@MichaelJCaruso MichaelJCaruso commented Nov 8, 2017

Originally intended to address issue #35, this pull request was closed and superseded by the more comprehensive changes of pull request #38 .

Eliminate numerous warnings caused by the deprecated presence of an 'll'
qualifier in the "%p" format specifier.

Syntax changes introduced by c++11 require that the string literals
in a string concatentation (e.g, "abc" "def") be separated by a space
(see the changes to VkRunTimes.h).
Format field lenght when parsing an 'unsigned int' should be '%u', not '%lu'.
GCC 6.3 (at least) no longer generates code that compares 'this' pointers to
'null'.  While it's trivially easy to invoke a non-virtual member through using
a 'null' pointer, the standard considers this to be 'undefined' behavior, so
GCC 6.3 silently refuses to generate code for the test.  While there may be
clever ways to circumvent the compiler on the matter, the safest approach is to
reorganize the code to give the compiler what it wants to see.  This commit does
that by relocated the required tests in the case of the implementation of
'VSymbolBinding::level ()' in the backend.
GCC 6.3 (at least) no longer generates code that compares 'this' pointers to
'null'.  While it's trivially easy to invoke a non-virtual member through using
a 'null' pointer, the standard considers this to be 'undefined' behavior, so
GCC 6.3 silently refuses to generate code for the test.  While there may be
clever ways to circumvent the compiler on the matter, the safest approach is to
reorganize the code to give the compiler what it wants to see.  This commit does
that by relocated the required tests in the case of the implementation of
'rtVECTOR_PMRDC::Append ()' in the backend.
Not only do recent c++ compilers (g++ 6.3) refuse to emit code to test
if a 'this' pointer is null, in some cases, that refusal is not easily
detectable by syntactic examination alone, as the changes submitted here
attest.
@MichaelJCaruso MichaelJCaruso changed the title Initial collection of 'this' null testing patches for release 8.0.x 'this' null testing patches for release 8.0.x Nov 8, 2017
@MichaelJCaruso MichaelJCaruso changed the title 'this' null testing patches for release 8.0.x 'this' null testing patches for the release 8.0.x code line Nov 8, 2017
@MichaelJCaruso MichaelJCaruso deleted the release-8.0-gcc6.3 branch December 26, 2017 02:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant