Index: src/SynTree/Statement.cc
===================================================================
--- src/SynTree/Statement.cc	(revision c8c03683ab886c6aabc128b60ed569f8abadd1c6)
+++ src/SynTree/Statement.cc	(revision 0f8e4ac628ebde73ac11e8dfa6bd2e532f3627f6)
@@ -87,5 +87,5 @@
 	Statement( labels ), originalTarget( _target ), target( _target ), computedTarget( NULL ), type( _type ) {
 	//actually this is a syntactic error signaled by the parser
-	if ( type == BranchStmt::Goto && target.size() == 0 )
+	if ( type == BranchStmt::Goto && target.empty() )
 		throw SemanticError("goto without target");
 }
Index: src/SynTree/Statement.h
===================================================================
--- src/SynTree/Statement.h	(revision c8c03683ab886c6aabc128b60ed569f8abadd1c6)
+++ src/SynTree/Statement.h	(revision 0f8e4ac628ebde73ac11e8dfa6bd2e532f3627f6)
@@ -22,4 +22,5 @@
 #include "Common/SemanticError.h"
 #include "Type.h"
+#include "Label.h"
 
 class Statement {
Index: src/SynTree/SynTree.h
===================================================================
--- src/SynTree/SynTree.h	(revision c8c03683ab886c6aabc128b60ed569f8abadd1c6)
+++ src/SynTree/SynTree.h	(revision 0f8e4ac628ebde73ac11e8dfa6bd2e532f3627f6)
@@ -113,5 +113,6 @@
 class Constant;
 
-typedef std::string Label;
+// typedef std::string Label;
+class Label;
 typedef unsigned int UniqueId;
 
