[weak vtables] Place class definitions into anonymous namespaces to prevent weak...
[oota-llvm.git] / examples / Kaleidoscope / Chapter5 / toy.cpp
index 113016a3264bc0607d4f5c0637288b27a1585998..fe4cdfe757450c174b1a776a2da4281525b79d38 100644 (file)
@@ -96,17 +96,14 @@ static int gettok() {
 //===----------------------------------------------------------------------===//
 // Abstract Syntax Tree (aka Parse Tree)
 //===----------------------------------------------------------------------===//
-
+namespace {
 /// ExprAST - Base class for all expression nodes.
 class ExprAST {
 public:
-  virtual ~ExprAST();
+  virtual ~ExprAST() {}
   virtual Value *Codegen() = 0;
 };
 
-// Provide out-of-line definition to prevent weak vtable.
-ExprAST::~ExprAST() {}
-
 /// NumberExprAST - Expression class for numeric literals like "1.0".
 class NumberExprAST : public ExprAST {
   double Val;
@@ -186,6 +183,7 @@ public:
   
   Function *Codegen();
 };
+} // end anonymous namespace
 
 //===----------------------------------------------------------------------===//
 // Parser