| 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