Driver: Handle /GR- in a compatible way with MSVC
There are slight differences between /GR- and -fno-rtti which made mapping one to the other inappropriate. -fno-rtti disables dynamic_cast, typeid, and does not emit RTTI related information for the v-table. /GR- does not generate complete object locators and thus will not reference them in vftables. However, constructs like dynamic_cast and typeid are permitted. This should bring our implementation of RTTI up to semantic parity with MSVC modulo bugs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212138 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- include/clang/Basic/LangOptions.def 1 addition, 0 deletionsinclude/clang/Basic/LangOptions.def
- include/clang/Driver/CC1Options.td 2 additions, 0 deletionsinclude/clang/Driver/CC1Options.td
- include/clang/Driver/CLCompatOptions.td 2 additions, 2 deletionsinclude/clang/Driver/CLCompatOptions.td
- lib/AST/VTableBuilder.cpp 1 addition, 1 deletionlib/AST/VTableBuilder.cpp
- lib/Basic/Targets.cpp 1 addition, 1 deletionlib/Basic/Targets.cpp
- lib/CodeGen/MicrosoftCXXABI.cpp 3 additions, 2 deletionslib/CodeGen/MicrosoftCXXABI.cpp
- lib/CodeGen/MicrosoftRTTI.cpp 1 addition, 1 deletionlib/CodeGen/MicrosoftRTTI.cpp
- lib/Driver/Tools.cpp 8 additions, 15 deletionslib/Driver/Tools.cpp
- lib/Frontend/CompilerInvocation.cpp 1 addition, 0 deletionslib/Frontend/CompilerInvocation.cpp
- test/CodeGenCXX/microsoft-no-rtti-data.cpp 21 additions, 0 deletionstest/CodeGenCXX/microsoft-no-rtti-data.cpp
- test/Driver/cl-fallback.c 5 additions, 4 deletionstest/Driver/cl-fallback.c
- test/Driver/cl-options.c 5 additions, 3 deletionstest/Driver/cl-options.c
Loading
Please register or sign in to comment