[llvm-dev] Is there a sanitizer for "virtual call to a pure virtual function from a constructor..."?

Jeffrey Walton via llvm-dev llvm-dev at lists.llvm.org
Fri Aug 5 22:34:42 PDT 2016


I'm testing a library under a Raspberry Pi 3. Its ARMv8 device, and
its runs Raspbian OS. The library tests OK under other ARM platforms
and other architectures, like i686 and x86_64. The problem seems to be
specific to this platform.

The library's test suite is being aborted with the message:

    ...
    DLIES XOR ran 12 tests all ok
    [New Thread 0x765bf450 (LWP 3674)]
    pure virtual method called
    terminate called without an active exception

I'm thinking the "pure virtual method called" means this could be the
problem: http://stackoverflow.com/questions/9185990. I have not been
able to zero-in further because I can't get a good back trace and the
tools I usually use are slightly broken in annoying ways. For example,
Valgrind unhandled instruction
(http://bugs.kde.org/show_bug.cgi?id=366464); and Clang 3.7 missing
UBsan libraries (http://bugs.launchpad.net/raspbian/+bug/1610502).

To confirm/deny the pure virtual call from a ctor in the test program,
I'd like to run the test program on x86_64 and see if it triggers a
finding.

Is there a sanitizer for "virtual call to a pure virtual function from
a constructor..."?

Thanks in advance.


More information about the llvm-dev mailing list