Hello,
A very simple c++ code:
#include <iostream>
int main() {
std::cout << "Hello!\n"
return 0;
}
when built using Xcode 26.0:
c++ -Wall -Wextra -O2 -isysroot $(xcrun --show-sdk-path -sdk iphoneos) -arch arm64e main.cpp -o test.app/test -framework Foundation
Makes the app crash with a pointer authentication exception (likely due to not authenticated access to a PAC-signed virtual table):
PROCESS_STOPPED
thread #1: tid = 0x29a31, 0x000000010075813c test`std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:ne200100]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) + 88, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x2000020c8489e8)
frame #0: 0x000000010075813c test`std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:ne200100]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) + 88
frame #1: 0x000000010075803c test`main + 60
Could it be that is that the iOS 14’s c++ stdlib may not have been stable back then and something changed in iOS 15 (as the code does not crash on iOS 15 and newer)?
Are there any compiler flags that would enable some kind of iOS14 compatibility mode for arm64e that could prevent C++ code from crashing on this OS?
Thank you