When using the -fno-rtti option of the GCC style clang++, using typeid results in an error. The MSVC STL however kindly provides a define flag called _HAS_STATIC_RTTI, which either enables or disables uses of typeid throughout the STL. By default, if undefined, it is set to 1, enabling the use of typeid. With this patch, _HAS_STATIC_RTTI is set to 0 when -fno-rtti is specified. This way various headers of the MSVC STL like functional can be consumed without compilation failures. Differential Revision: https://reviews.llvm.org/D103771
6 lines
316 B
C++
6 lines
316 B
C++
// RUN: %clang -target x86_64-pc-windows-msvc -fno-rtti -### %s 2>&1 | FileCheck %s -check-prefix STATIC-RTTI-DEF
|
|
// RUN: %clang -target x86_64-pc-windows-msvc -frtti -### %s 2>&1 | FileCheck %s -check-prefix STATIC-RTTI-DEF-NOT
|
|
|
|
// STATIC-RTTI-DEF: -D_HAS_STATIC_RTTI=0
|
|
// STATIC-RTTI-DEF-NOT: -D_HAS_STATIC_RTTI=0
|