The string-encoding pass removes or encodes strings in a binary. We have it working on x86 Linux and arm64 macOS. When we run it with triple arm64-apple-ios, however, it appears to produce a wrapped version of the encoded string by accident.
How to reproduce the issue
Check out main, configure a build and run ninja check
It will report passes/strings-encoding/basic-aarch64.cpp as "Expectedly Failed"
Run the test in isolation: bin/llvm-lit -a --filter=basic-aarch64 test. The output will be something like this:
o-mvll/src/test/passes/strings-encoding/basic-aarch64.cpp:29:24: error: CHECK-REPLACED-NOT: excluded string found in input
// CHECK-REPLACED-NOT: [[FILE_NAME]]
^
<stdin>:33:3: note: found here
l_o-mvll/src/test/passes/strings-encoding/basic-aarch64.cpp:.str.2
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<stdin>:33:3: note: with "FILE_NAME" equal to "o-mvll/src/test/passes/strings-encoding/basic-aarch64\\.cpp"
l_o-mvll/src/test/passes/strings-encoding/basic-aarch64.cpp:.str.2
^
Description
The string-encoding pass removes or encodes strings in a binary. We have it working on x86 Linux and arm64 macOS. When we run it with triple
arm64-apple-ios
, however, it appears to produce a wrapped version of the encoded string by accident.How to reproduce the issue
main
, configure a build and runninja check
passes/strings-encoding/basic-aarch64.cpp
as "Expectedly Failed"bin/llvm-lit -a --filter=basic-aarch64 test
. The output will be something like this:O-MVLL Python Configuration
https://github.com/open-obfuscator/o-mvll/blob/9ce24ea838970558fbff1549e5a3fe1a1299866d/src/test/passes/strings-encoding/config_replace.py
Environment
Additional context
It cannot be reproduce on x86 macOS right now, because clang crashes for a different reason before.