Issue 108109
Summary [WPD] SPEC 2006 xalancbmk fails with Whole Program Devirtualization turned on.
Labels clang, llvm:optimizations
Assignees aeubanks, teresajohnson
Reporter UsmanNadeem
    Minimal flags to reproduce the issue: `-flto -O0 -fvisibility=hidden -fwhole-program-vtables`
Flag to enable verification trap: `-Wl,-mllvm,-wholeprogramdevirt-check=trap`
I have reproduced the issue with other optimization levels as well. 

With the trap enabled we hit the trap, otherwise we crash with a segmentation fault (failure might be flaky). Execution on QEMU-aarch64 fails more consistently but it can be reproduced on physical devices as well.

We hit the trap in function: `xercesc_2_5::SchemaValidator::preContentValidation(bool, bool)` or `_ZN11xercesc_2_515SchemaValidator20preContentValidationEbb` this function is in `SchemaValidator.cpp`

The devirtualized call is to: `xercesc_2_5::SchemaGrammar::getGrammarType() const` or `_ZNK11xercesc_2_513SchemaGrammar14getGrammarTypeEv`

Debugging reveals that the actual pointer is for: `xercesc_2_5::DTDGrammar::getGrammarType() const` or `_ZNK11xercesc_2_510DTDGrammar14getGrammarTypeEv`
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to