[llvm] r235541 - [Kaleidoscope] Remove RTTI use from chapters 7 and 8.

Lang Hames lhames at gmail.com
Wed Apr 22 14:04:55 PDT 2015


Bad copypasta - thanks for catching these. I've fixed them, along with the
MCJIT examples they originated in, in 235543.

- Lang.

On Wed, Apr 22, 2015 at 1:49 PM, David Blaikie <dblaikie at gmail.com> wrote:

> On Wed, Apr 22, 2015 at 1:41 PM, Lang Hames <lhames at gmail.com> wrote:
> > Author: lhames
> > Date: Wed Apr 22 15:41:34 2015
> > New Revision: 235541
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=235541&view=rev
> > Log:
> > [Kaleidoscope] Remove RTTI use from chapters 7 and 8.
> >
> > Modified:
> >     llvm/trunk/examples/Kaleidoscope/Chapter7/CMakeLists.txt
> >     llvm/trunk/examples/Kaleidoscope/Chapter7/Makefile
> >     llvm/trunk/examples/Kaleidoscope/Chapter7/toy.cpp
> >     llvm/trunk/examples/Kaleidoscope/Chapter8/CMakeLists.txt
> >     llvm/trunk/examples/Kaleidoscope/Chapter8/Makefile
> >     llvm/trunk/examples/Kaleidoscope/Chapter8/toy.cpp
> >
> > Modified: llvm/trunk/examples/Kaleidoscope/Chapter7/CMakeLists.txt
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/Kaleidoscope/Chapter7/CMakeLists.txt?rev=235541&r1=235540&r2=235541&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/examples/Kaleidoscope/Chapter7/CMakeLists.txt (original)
> > +++ llvm/trunk/examples/Kaleidoscope/Chapter7/CMakeLists.txt Wed Apr 22
> 15:41:34 2015
> > @@ -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
> >    )
> >
> > Modified: llvm/trunk/examples/Kaleidoscope/Chapter7/Makefile
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/Kaleidoscope/Chapter7/Makefile?rev=235541&r1=235540&r2=235541&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/examples/Kaleidoscope/Chapter7/Makefile (original)
> > +++ llvm/trunk/examples/Kaleidoscope/Chapter7/Makefile Wed Apr 22
> 15:41:34 2015
> > @@ -9,7 +9,6 @@
> >  LEVEL = ../../..
> >  TOOLNAME = Kaleidoscope-Ch7
> >  EXAMPLE_TOOL = 1
> > -REQUIRES_RTTI := 1
> >
> >  LINK_COMPONENTS := core mcjit native
> >
> >
> > Modified: llvm/trunk/examples/Kaleidoscope/Chapter7/toy.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/Kaleidoscope/Chapter7/toy.cpp?rev=235541&r1=235540&r2=235541&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/examples/Kaleidoscope/Chapter7/toy.cpp (original)
> > +++ llvm/trunk/examples/Kaleidoscope/Chapter7/toy.cpp Wed Apr 22
> 15:41:34 2015
> > @@ -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<VariableExprAST *>(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<VariableExprAST *>(LHS);
>
> This should probably be static_cast - reinterpret_cast won't account
> for base pointer adjustments, etc (eg: if the base object isn't the
> first subobject of the derived class (because it derives from more
> than one class, for example) - static_cast will adjust the pointer
> appropriately, reintepret_cast won't)
>
> >      if (!LHSE)
> >        return ErrorV("destination of '=' must be a variable");
> >      // Codegen the RHS.
> >
> > Modified: llvm/trunk/examples/Kaleidoscope/Chapter8/CMakeLists.txt
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/Kaleidoscope/Chapter8/CMakeLists.txt?rev=235541&r1=235540&r2=235541&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/examples/Kaleidoscope/Chapter8/CMakeLists.txt (original)
> > +++ llvm/trunk/examples/Kaleidoscope/Chapter8/CMakeLists.txt Wed Apr 22
> 15:41:34 2015
> > @@ -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
> >    )
> >
> > Modified: llvm/trunk/examples/Kaleidoscope/Chapter8/Makefile
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/Kaleidoscope/Chapter8/Makefile?rev=235541&r1=235540&r2=235541&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/examples/Kaleidoscope/Chapter8/Makefile (original)
> > +++ llvm/trunk/examples/Kaleidoscope/Chapter8/Makefile Wed Apr 22
> 15:41:34 2015
> > @@ -9,7 +9,6 @@
> >  LEVEL = ../../..
> >  TOOLNAME = Kaleidoscope-Ch8
> >  EXAMPLE_TOOL = 1
> > -REQUIRES_RTTI := 1
> >
> >  LINK_COMPONENTS := core mcjit native
> >
> >
> > Modified: llvm/trunk/examples/Kaleidoscope/Chapter8/toy.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/Kaleidoscope/Chapter8/toy.cpp?rev=235541&r1=235540&r2=235541&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/examples/Kaleidoscope/Chapter8/toy.cpp (original)
> > +++ llvm/trunk/examples/Kaleidoscope/Chapter8/toy.cpp Wed Apr 22
> 15:41:34 2015
> > @@ -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<VariableExprAST *>(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<VariableExprAST *>(LHS);
>
> Same here
>
> >      if (!LHSE)
> >        return ErrorV("destination of '=' must be a variable");
> >      // Codegen the RHS.
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150422/8275687e/attachment.html>


More information about the llvm-commits mailing list