Index: src/SynTree/Declaration.cc
===================================================================
--- src/SynTree/Declaration.cc	(revision 724c2b6f8ab60e02cc9a9c5872b23139ff804274)
+++ src/SynTree/Declaration.cc	(revision 994ec2c039c407fb50939eeada77a809be205d12)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun 13 08:07:20 2015
-// Update Count     : 9
+// Last Modified On : Mon Jul 13 17:58:38 2015
+// Update Count     : 10
 //
 
@@ -27,9 +27,9 @@
 
 Declaration::Declaration( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage )
-		: name( name ), storageClass( sc ), linkage( linkage ), uniqueId( 0 ) {
+		: name( name ), storageClass( sc ), linkage( linkage ), isInline( false ), isNoreturn( false ), uniqueId( 0 ) {
 }
 
 Declaration::Declaration( const Declaration &other )
-		: name( other.name ), storageClass( other.storageClass ), linkage( other.linkage ), uniqueId( other.uniqueId ) {
+	: name( other.name ), storageClass( other.storageClass ), linkage( other.linkage ), isInline( other.isInline ), isNoreturn( other.isNoreturn ), uniqueId( other.uniqueId ) {
 }
 
Index: src/SynTree/Declaration.h
===================================================================
--- src/SynTree/Declaration.h	(revision 724c2b6f8ab60e02cc9a9c5872b23139ff804274)
+++ src/SynTree/Declaration.h	(revision 994ec2c039c407fb50939eeada77a809be205d12)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun 13 09:10:31 2015
-// Update Count     : 25
+// Last Modified On : Mon Jul 13 18:15:59 2015
+// Update Count     : 28
 //
 
@@ -35,4 +35,8 @@
 	LinkageSpec::Type get_linkage() const { return linkage; }
 	void set_linkage( LinkageSpec::Type newValue ) { linkage = newValue; }
+	bool get_isInline() const { return isInline; }
+	void set_isInline( bool newValue ) { isInline = newValue; }
+	bool get_isNoreturn() const { return isNoreturn; }
+	void set_isNoreturn( bool newValue ) { isNoreturn = newValue; }
 	UniqueId get_uniqueId() const { return uniqueId; }
 
@@ -50,4 +54,5 @@
 	DeclarationNode::StorageClass storageClass;
 	LinkageSpec::Type linkage;
+	bool isInline, isNoreturn;
 	UniqueId uniqueId;
 };
@@ -75,5 +80,5 @@
 	typedef DeclarationWithType Parent;
   public:
-	ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init );
+	ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init, bool isInline = false, bool isNoreturn = false );
 	ObjectDecl( const ObjectDecl &other );
 	virtual ~ObjectDecl();
@@ -89,5 +94,5 @@
 	virtual ObjectDecl *clone() const { return new ObjectDecl( *this ); }
 	virtual void accept( Visitor &v ) { v.visit( this ); }
-	virtual ObjectDecl *acceptMutator( Mutator &m ) { return m.mutate( this ); }
+	virtual DeclarationWithType *acceptMutator( Mutator &m ) { return m.mutate( this ); }
 	virtual void print( std::ostream &os, int indent = 0 ) const;
 	virtual void printShort( std::ostream &os, int indent = 0 ) const;
@@ -112,6 +117,4 @@
 	CompoundStmt *get_statements() const { return statements; }
 	void set_statements( CompoundStmt *newValue ) { statements = newValue; }
-	bool get_isInline() const { return isInline; }
-	bool get_isNoreturn() const { return isNoreturn; }
 	std::list< std::string >& get_oldIdents() { return oldIdents; }
 	std::list< Declaration* >& get_oldDecls() { return oldDecls; }
@@ -125,5 +128,4 @@
 	FunctionType *type;
 	CompoundStmt *statements;
-	bool isInline, isNoreturn;
 	std::list< std::string > oldIdents;
 	std::list< Declaration* > oldDecls;
Index: src/SynTree/FunctionDecl.cc
===================================================================
--- src/SynTree/FunctionDecl.cc	(revision 724c2b6f8ab60e02cc9a9c5872b23139ff804274)
+++ src/SynTree/FunctionDecl.cc	(revision 994ec2c039c407fb50939eeada77a809be205d12)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun 13 09:10:32 2015
-// Update Count     : 16
+// Last Modified On : Mon Jul 13 18:11:44 2015
+// Update Count     : 19
 //
 
@@ -22,5 +22,7 @@
 
 FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn )
-		: Parent( name, sc, linkage ), type( type ), statements( statements ), isInline( isInline ), isNoreturn( isNoreturn ) {
+		: Parent( name, sc, linkage ), type( type ), statements( statements ) {
+	set_isInline( isInline );
+	set_isNoreturn( isNoreturn );
 	// this is a brazen hack to force the function "main" to have C linkage
 	if ( name == "main" ) {
@@ -30,5 +32,5 @@
 
 FunctionDecl::FunctionDecl( const FunctionDecl &other )
-	: Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ), isInline( other.isInline ), isNoreturn( other.isNoreturn ) {
+	: Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ) {
 }
 
@@ -57,8 +59,8 @@
 		os << LinkageSpec::toString( get_linkage() ) << " ";
 	} // if
-	if ( isInline ) {
+	if ( get_isInline() ) {
 		os << "inline ";
 	} // if
-	if ( isNoreturn ) {
+	if ( get_isNoreturn() ) {
 		os << "_Noreturn ";
 	} // if
@@ -96,8 +98,8 @@
 		os << get_name() << ": ";
 	} // if
-	if ( isInline ) {
+	if ( get_isInline() ) {
 		os << "inline ";
 	} // if
-	if ( isNoreturn ) {
+	if ( get_isNoreturn() ) {
 		os << "_Noreturn ";
 	} // if
Index: src/SynTree/Mutator.cc
===================================================================
--- src/SynTree/Mutator.cc	(revision 724c2b6f8ab60e02cc9a9c5872b23139ff804274)
+++ src/SynTree/Mutator.cc	(revision 994ec2c039c407fb50939eeada77a809be205d12)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Tue Jul 14 12:31:39 2015
-// Update Count     : 2
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Jul 16 16:10:54 2015
+// Update Count     : 3
 //
 
@@ -28,5 +28,5 @@
 Mutator::~Mutator() {}
 
-ObjectDecl *Mutator::mutate( ObjectDecl *objectDecl ) {
+DeclarationWithType *Mutator::mutate( ObjectDecl *objectDecl ) {
 	objectDecl->set_type( maybeMutate( objectDecl->get_type(), *this ) );
 	objectDecl->set_init( maybeMutate( objectDecl->get_init(), *this ) );
Index: src/SynTree/Mutator.h
===================================================================
--- src/SynTree/Mutator.h	(revision 724c2b6f8ab60e02cc9a9c5872b23139ff804274)
+++ src/SynTree/Mutator.h	(revision 994ec2c039c407fb50939eeada77a809be205d12)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Fri May 29 16:34:08 2015
-// Update Count     : 4
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Mon Jul 13 18:14:47 2015
+// Update Count     : 5
 //
 #include <cassert>
@@ -26,5 +26,5 @@
 	virtual ~Mutator();
   public:
-	virtual ObjectDecl* mutate( ObjectDecl *objectDecl );
+	virtual DeclarationWithType* mutate( ObjectDecl *objectDecl );
 	virtual DeclarationWithType* mutate( FunctionDecl *functionDecl );
 	virtual Declaration* mutate( StructDecl *aggregateDecl );
Index: src/SynTree/ObjectDecl.cc
===================================================================
--- src/SynTree/ObjectDecl.cc	(revision 724c2b6f8ab60e02cc9a9c5872b23139ff804274)
+++ src/SynTree/ObjectDecl.cc	(revision 994ec2c039c407fb50939eeada77a809be205d12)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun 13 08:10:16 2015
-// Update Count     : 15
+// Last Modified On : Mon Jul 13 18:08:27 2015
+// Update Count     : 16
 //
 
@@ -20,6 +20,8 @@
 #include "utility.h"
 
-ObjectDecl::ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init )
+ObjectDecl::ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init, bool isInline, bool isNoreturn )
 	: Parent( name, sc, linkage ), type( type ), init( init ), bitfieldWidth( bitfieldWidth ) {
+	set_isInline( isInline );
+	set_isNoreturn( isNoreturn );
 }
 
Index: src/SynTree/Type.cc
===================================================================
--- src/SynTree/Type.cc	(revision 724c2b6f8ab60e02cc9a9c5872b23139ff804274)
+++ src/SynTree/Type.cc	(revision 994ec2c039c407fb50939eeada77a809be205d12)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue May 19 16:52:27 2015
-// Update Count     : 2
+// Last Modified On : Thu Jul  9 16:45:13 2015
+// Update Count     : 3
 //
 
@@ -75,4 +75,7 @@
 		os << "_Atomic ";
 	} // if
+	if ( tq.isAttribute ) {
+		os << "__attribute(( )) ";
+	} // if
 }
 
Index: src/SynTree/Type.h
===================================================================
--- src/SynTree/Type.h	(revision 724c2b6f8ab60e02cc9a9c5872b23139ff804274)
+++ src/SynTree/Type.h	(revision 994ec2c039c407fb50939eeada77a809be205d12)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jun 26 16:47:54 2015
-// Update Count     : 13
+// Last Modified On : Thu Jul  9 16:46:15 2015
+// Update Count     : 14
 //
 
@@ -25,5 +25,5 @@
 	struct Qualifiers {  
 		Qualifiers(): isConst( false ), isVolatile( false ), isRestrict( false ), isLvalue( false ), isAtomic( false ), isAttribute( false ) {}
-		Qualifiers( bool isConst, bool isVolatile, bool isRestrict, bool isLvalue, bool isAtomic, bool isAttribute): isConst( isConst ), isVolatile( isVolatile ), isRestrict( isRestrict ), isLvalue( isLvalue ), isAtomic( isAtomic ), isAttribute( isAttribute ) {}
+		Qualifiers( bool isConst, bool isVolatile, bool isRestrict, bool isLvalue, bool isAtomic, bool isAttribute ): isConst( isConst ), isVolatile( isVolatile ), isRestrict( isRestrict ), isLvalue( isLvalue ), isAtomic( isAtomic ), isAttribute( isAttribute ) {}
 	
 		Qualifiers &operator+=( const Qualifiers &other );
