Index: src/SynTree/Label.h
===================================================================
--- src/SynTree/Label.h	(revision 70a1c3aed5e5b84a329ddc71a02c60806fd80216)
+++ src/SynTree/Label.h	(revision bee06942613823dfa3adc6451bf356922ada830e)
@@ -49,5 +49,5 @@
 inline std::ostream & operator<<( std::ostream & out, const Label & l ) { return out << l.get_name(); }
 
-static const std::list< Label > noLabels;
+static const std::vector< Label >  noLabels;
 
 // Local Variables: //
Index: src/SynTree/Statement.cc
===================================================================
--- src/SynTree/Statement.cc	(revision 70a1c3aed5e5b84a329ddc71a02c60806fd80216)
+++ src/SynTree/Statement.cc	(revision bee06942613823dfa3adc6451bf356922ada830e)
@@ -32,5 +32,5 @@
 using std::endl;
 
-Statement::Statement( const std::list<Label> & labels ) : labels( labels ) {}
+Statement::Statement( const std::vector< Label >  & labels ) : labels( labels ) {}
 
 void Statement::print( std::ostream & os, Indenter indent ) const {
@@ -60,5 +60,5 @@
 
 
-AsmStmt::AsmStmt( bool voltile, Expression *instruction, std::list<Expression *> output, std::list<Expression *> input, std::list<ConstantExpr *> clobber, std::list<Label> gotolabels ) : Statement(), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ), gotolabels( gotolabels ) {}
+AsmStmt::AsmStmt( bool voltile, Expression *instruction, std::list<Expression *> output, std::list<Expression *> input, std::list<ConstantExpr *> clobber, std::vector< Label >  gotolabels ) : Statement(), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ), gotolabels( gotolabels ) {}
 
 AsmStmt::AsmStmt( const AsmStmt & other ) : Statement( other ), voltile( other.voltile ), instruction( maybeClone( other.instruction ) ), gotolabels( other.gotolabels ) {
@@ -223,5 +223,5 @@
 }
 
-CaseStmt * CaseStmt::makeDefault( const std::list<Label> & labels, std::list<Statement *> stmts ) {
+CaseStmt * CaseStmt::makeDefault( const std::vector< Label >  & labels, std::list<Statement *> stmts ) {
 	CaseStmt * stmt = new CaseStmt( nullptr, stmts, true );
 	stmt->labels = labels;
@@ -511,5 +511,5 @@
 
 
-NullStmt::NullStmt( const std::list<Label> & labels ) : Statement( labels ) {
+NullStmt::NullStmt( const std::vector< Label >  & labels ) : Statement( labels ) {
 }
 
Index: src/SynTree/Statement.h
===================================================================
--- src/SynTree/Statement.h	(revision 70a1c3aed5e5b84a329ddc71a02c60806fd80216)
+++ src/SynTree/Statement.h	(revision bee06942613823dfa3adc6451bf356922ada830e)
@@ -35,11 +35,11 @@
 class Statement : public BaseSyntaxNode {
   public:
-	std::list<Label> labels;
-
-	Statement( const std::list<Label> & labels = {} );
+	std::vector< Label >  labels;
+
+	Statement( const std::vector< Label >  & labels = {} );
 	virtual ~Statement();
 
-	std::list<Label> & get_labels() { return labels; }
-	const std::list<Label> & get_labels() const { return labels; }
+	std::vector< Label >  & get_labels() { return labels; }
+	const std::vector< Label >  & get_labels() const { return labels; }
 
 	virtual Statement *clone() const override = 0;
@@ -70,5 +70,5 @@
 class NullStmt : public Statement {
   public:
-	NullStmt( const std::list<Label> & labels = {} );
+	NullStmt( const std::vector< Label >  & labels = {} );
 
 	virtual NullStmt *clone() const override { return new NullStmt( *this ); }
@@ -101,7 +101,7 @@
 	std::list<Expression *> output, input;
 	std::list<ConstantExpr *> clobber;
-	std::list<Label> gotolabels;
-
-	AsmStmt( bool voltile, Expression *instruction, std::list<Expression *> output, std::list<Expression *> input, std::list<ConstantExpr *> clobber, std::list<Label> gotolabels );
+	std::vector< Label >  gotolabels;
+
+	AsmStmt( bool voltile, Expression *instruction, std::list<Expression *> output, std::list<Expression *> input, std::list<ConstantExpr *> clobber, std::vector< Label >  gotolabels );
 	AsmStmt( const AsmStmt &other );
 	virtual ~AsmStmt();
@@ -117,6 +117,6 @@
 	std::list<ConstantExpr *> & get_clobber() { return clobber; }
 	void set_clobber( const std::list<ConstantExpr *> &newValue ) { clobber = newValue; }
-	std::list<Label> & get_gotolabels() { return gotolabels; }
-	void set_gotolabels( const std::list<Label> &newValue ) { gotolabels = newValue; }
+	std::vector< Label >  & get_gotolabels() { return gotolabels; }
+	void set_gotolabels( const std::vector< Label >  &newValue ) { gotolabels = newValue; }
 
 	virtual AsmStmt * clone() const { return new AsmStmt( *this ); }
@@ -196,5 +196,5 @@
 	virtual ~CaseStmt();
 
-	static CaseStmt * makeDefault( const std::list<Label> & labels = {}, std::list<Statement *> stmts = std::list<Statement *>() );
+	static CaseStmt * makeDefault( const std::vector< Label >  & labels = {}, std::list<Statement *> stmts = std::list<Statement *>() );
 
 	bool isDefault() const { return _isDefault; }
