From fd491461fc4bf24de4b29d5fba6f2c09c5d2311f Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Wed, 22 Apr 2015 20:41:34 +0000 Subject: [PATCH] [Kaleidoscope] Remove RTTI use from chapters 7 and 8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235541 91177308-0d34-0410-b5e6-96231b3b80d8 --- examples/Kaleidoscope/Chapter7/CMakeLists.txt | 4 ---- examples/Kaleidoscope/Chapter7/Makefile | 1 - examples/Kaleidoscope/Chapter7/toy.cpp | 5 ++++- examples/Kaleidoscope/Chapter8/CMakeLists.txt | 4 ---- examples/Kaleidoscope/Chapter8/Makefile | 1 - examples/Kaleidoscope/Chapter8/toy.cpp | 5 ++++- 6 files changed, 8 insertions(+), 12 deletions(-) diff --git a/examples/Kaleidoscope/Chapter7/CMakeLists.txt b/examples/Kaleidoscope/Chapter7/CMakeLists.txt index 23aba6510b8..8725e4761f7 100644 --- a/examples/Kaleidoscope/Chapter7/CMakeLists.txt +++ b/examples/Kaleidoscope/Chapter7/CMakeLists.txt @@ -11,10 +11,6 @@ set(LLVM_LINK_COMPONENTS native ) -set(LLVM_REQUIRES_RTTI 1) - -set(LLVM_BUILD_EXAMPLES OFF) - add_kaleidoscope_chapter(Kaleidoscope-Ch7 toy.cpp ) diff --git a/examples/Kaleidoscope/Chapter7/Makefile b/examples/Kaleidoscope/Chapter7/Makefile index 7abeb3e5b67..c672c0a36c6 100644 --- a/examples/Kaleidoscope/Chapter7/Makefile +++ b/examples/Kaleidoscope/Chapter7/Makefile @@ -9,7 +9,6 @@ LEVEL = ../../.. TOOLNAME = Kaleidoscope-Ch7 EXAMPLE_TOOL = 1 -REQUIRES_RTTI := 1 LINK_COMPONENTS := core mcjit native diff --git a/examples/Kaleidoscope/Chapter7/toy.cpp b/examples/Kaleidoscope/Chapter7/toy.cpp index 53ea51c2b9c..acf21f898f8 100644 --- a/examples/Kaleidoscope/Chapter7/toy.cpp +++ b/examples/Kaleidoscope/Chapter7/toy.cpp @@ -713,7 +713,10 @@ Value *BinaryExprAST::Codegen() { // Special case '=' because we don't want to emit the LHS as an expression. if (Op == '=') { // Assignment requires the LHS to be an identifier. - VariableExprAST *LHSE = dynamic_cast(LHS); + // This assume we're building without RTTI because LLVM builds that way by + // default. If you build LLVM with RTTI this can be changed to a + // dynamic_cast for automatic error checking. + VariableExprAST *LHSE = reinterpret_cast(LHS); if (!LHSE) return ErrorV("destination of '=' must be a variable"); // Codegen the RHS. diff --git a/examples/Kaleidoscope/Chapter8/CMakeLists.txt b/examples/Kaleidoscope/Chapter8/CMakeLists.txt index 90c79c0b9ae..f94ed743618 100644 --- a/examples/Kaleidoscope/Chapter8/CMakeLists.txt +++ b/examples/Kaleidoscope/Chapter8/CMakeLists.txt @@ -7,10 +7,6 @@ set(LLVM_LINK_COMPONENTS native ) -set(LLVM_REQUIRES_RTTI 1) - -set(LLVM_BUILD_EXAMPLES OFF) - add_kaleidoscope_chapter(Kaleidoscope-Ch8 toy.cpp ) diff --git a/examples/Kaleidoscope/Chapter8/Makefile b/examples/Kaleidoscope/Chapter8/Makefile index 8e4d4221178..25f048c39b0 100644 --- a/examples/Kaleidoscope/Chapter8/Makefile +++ b/examples/Kaleidoscope/Chapter8/Makefile @@ -9,7 +9,6 @@ LEVEL = ../../.. TOOLNAME = Kaleidoscope-Ch8 EXAMPLE_TOOL = 1 -REQUIRES_RTTI := 1 LINK_COMPONENTS := core mcjit native diff --git a/examples/Kaleidoscope/Chapter8/toy.cpp b/examples/Kaleidoscope/Chapter8/toy.cpp index eb16516b6d2..6ab0eaeca30 100644 --- a/examples/Kaleidoscope/Chapter8/toy.cpp +++ b/examples/Kaleidoscope/Chapter8/toy.cpp @@ -908,7 +908,10 @@ Value *BinaryExprAST::Codegen() { // Special case '=' because we don't want to emit the LHS as an expression. if (Op == '=') { // Assignment requires the LHS to be an identifier. - VariableExprAST *LHSE = dynamic_cast(LHS); + // This assume we're building without RTTI because LLVM builds that way by + // default. If you build LLVM with RTTI this can be changed to a + // dynamic_cast for automatic error checking. + VariableExprAST *LHSE = reinterpret_cast(LHS); if (!LHSE) return ErrorV("destination of '=' must be a variable"); // Codegen the RHS. -- 2.34.1