Details
-
Bug
-
Resolution: Fixed
-
Major - P3
-
3.6.1
-
None
-
macOS 11.0.1 RC, Xcode 12.2 RC, Apple arm64 Development Test Kit machine
Description
The error message seen when building on macOS on arm64 (sometimes called aarch64) is:
src/third_party/catch/include/catch.hpp:8122:13: error: invalid token in expression
|
CATCH_BREAK_INTO_DEBUGGER();
|
^
|
src/third_party/catch/include/catch.hpp:7834:79: note: expanded from macro 'CATCH_BREAK_INTO_DEBUGGER'
|
#define CATCH_BREAK_INTO_DEBUGGER() []{ if( Catch::isDebuggerActive() ) { CATCH_TRAP(); } }()
|
^
|
src/third_party/catch/include/catch.hpp:7813:34: note: expanded from macro 'CATCH_TRAP'
|
#define CATCH_TRAP() __asm__("int $3\n" : : ) /* NOLINT */
|
^
|
<inline asm>:1:6: note: instantiated into assembly here
|
int $3
|
^
|
catch.hpp contains this code:
#ifdef CATCH_PLATFORM_MAC
|
#define CATCH_TRAP() __asm__("int $3\n" : : ) /* NOLINT */
|
Note the absence of any conditional for different assembly code for different architectures or fallback non-assembly code for unknown architectures—which is present in the subsequent CATCH_PLATFORM_LINUX block. (Why do you need different blocks for macOS and Linux?)