Ulrich Drepper wrote:
It's most certainly not that simple. I haven't looked at the sources.
But the asm code does not really correspond to the code above. The
function above is most certainly inlined. The problem might very well
(and most likely is) in the use of this function. Look at the
cmELF::GetRPath()
function and where it directly or indirectly uses the Valid function.
It is very simple and not a compiler bug, and you are correct that the
error is in GetRPath.
The code is
if(this->Valid() &&
this->Internal->GetFileType() == cmELF::FileTypeExecutable ||
this->Internal->GetFileType() == cmELF::FileTypeSharedLibrary)
Notice the lack of () around the || lines
So that if Valid returns false it then tries
this->Internal->GetFileType() ==
and crashes.