Index: libcfa/src/concurrency/clib/cfathread.cfa
===================================================================
--- libcfa/src/concurrency/clib/cfathread.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ libcfa/src/concurrency/clib/cfathread.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -16,7 +16,8 @@
 // #define EPOLL_FOR_SOCKETS
 
-#include <sys/socket.h> // first include because of anonymous types __SOCKADDR_ARG, __CONST_SOCKADDR_ARG
 #include <string.h>
 #include <errno.h>
+#include <unistd.h>
+#include <sys/socket.h>
 
 #include "fstream.hfa"
@@ -27,5 +28,5 @@
 #include "time.hfa"
 #include "stdlib.hfa"
-
+#include "iofwd.hfa"
 #include "cfathread.h"
 
@@ -470,8 +471,4 @@
 }
 
-#include <unistd.h>
-
-#include <iofwd.hfa>
-
 extern "C" {
 	//--------------------
Index: libcfa/src/concurrency/clib/cfathread.h
===================================================================
--- libcfa/src/concurrency/clib/cfathread.h	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ libcfa/src/concurrency/clib/cfathread.h	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,12 +10,12 @@
 // Created On       : Tue Sep 22 15:31:20 2020
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Feb 16 12:00:32 2023
-// Update Count     : 5
+// Last Modified On : Sat Feb 25 17:39:20 2023
+// Update Count     : 6
 //
 
 #if defined(__cforall) || defined(__cplusplus)
-#include <sys/socket.h> // first include because of anonymous types __SOCKADDR_ARG, __CONST_SOCKADDR_ARG
 #include <unistd.h>
 #include <errno.h>
+#include <sys/socket.h>
 
 extern "C" {
Index: libcfa/src/concurrency/io/call.cfa.in
===================================================================
--- libcfa/src/concurrency/io/call.cfa.in	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ libcfa/src/concurrency/io/call.cfa.in	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -31,7 +31,7 @@
 Prelude = """#define __cforall_thread__
 
-#include <sys/socket.h> // first include because of anonymous types __SOCKADDR_ARG, __CONST_SOCKADDR_ARG
 #include <unistd.h>
 #include <errno.h>
+#include <sys/socket.h>
 #include <time.hfa>
 
Index: libcfa/src/concurrency/iofwd.hfa
===================================================================
--- libcfa/src/concurrency/iofwd.hfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ libcfa/src/concurrency/iofwd.hfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -16,6 +16,6 @@
 #pragma once
 
-#include <sys/socket.h> // first include because of anonymous types __SOCKADDR_ARG, __CONST_SOCKADDR_ARG
 #include <unistd.h>
+#include <sys/socket.h>
 
 extern "C" {
Index: libcfa/src/concurrency/kernel/cluster.hfa
===================================================================
--- libcfa/src/concurrency/kernel/cluster.hfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ libcfa/src/concurrency/kernel/cluster.hfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -146,7 +146,7 @@
 }
 
-static struct {
-	const unsigned readyq;
-	const unsigned io;
+const static struct {
+	unsigned readyq;
+	unsigned io;
 } __shard_factor = { 2, 1 };
 
Index: libcfa/src/concurrency/mutex_stmt.hfa
===================================================================
--- libcfa/src/concurrency/mutex_stmt.hfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ libcfa/src/concurrency/mutex_stmt.hfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -4,5 +4,6 @@
 //-----------------------------------------------------------------------------
 // is_lock
-trait is_lock(L & | sized(L)) {
+forall(L & | sized(L))
+trait is_lock {
 	// For acquiring a lock
 	void lock( L & );
Index: libcfa/src/interpose.cfa
===================================================================
--- libcfa/src/interpose.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ libcfa/src/interpose.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,6 +10,6 @@
 // Created On       : Wed Mar 29 16:10:31 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Feb 19 17:09:16 2023
-// Update Count     : 183
+// Last Modified On : Fri Feb 24 15:31:03 2023
+// Update Count     : 185
 //
 
@@ -101,9 +101,9 @@
 		preload_libgcc();
 
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdiscarded-qualifiers"
+		#pragma GCC diagnostic push
+		#pragma GCC diagnostic ignored "-Wdiscarded-qualifiers"
 		INTERPOSE_LIBC( abort, version );
 		INTERPOSE_LIBC( exit , version );
-#pragma GCC diagnostic pop
+		#pragma GCC diagnostic pop
 
 		if(__cfathreadabi_interpose_startup) __cfathreadabi_interpose_startup( do_interpose_symbol );
@@ -273,14 +273,14 @@
 	va_start( args, fmt );
 	__abort( false, fmt, args );
-    // CONTROL NEVER REACHES HERE!
+	// CONTROL NEVER REACHES HERE!
 	va_end( args );
 }
 
 void abort( bool signalAbort, const char fmt[], ... ) {
-    va_list args;
-    va_start( args, fmt );
-    __abort( signalAbort, fmt, args );
-    // CONTROL NEVER REACHES HERE!
-    va_end( args );
+	va_list args;
+	va_start( args, fmt );
+	__abort( signalAbort, fmt, args );
+	// CONTROL NEVER REACHES HERE!
+	va_end( args );
 }
 
Index: libcfa/src/limits.cfa
===================================================================
--- libcfa/src/limits.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ libcfa/src/limits.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,9 +10,8 @@
 // Created On       : Wed Apr  6 18:06:52 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Jan  8 18:53:17 2023
-// Update Count     : 86
+// Last Modified On : Fri Feb 17 12:25:39 2023
+// Update Count     : 87
 //
 
-// need _GNU_SOURCE to access long double M_*l in math.h
 #include <limits.h>
 #include <float.h>
Index: libcfa/src/vec/vec.hfa
===================================================================
--- libcfa/src/vec/vec.hfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ libcfa/src/vec/vec.hfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -18,35 +18,46 @@
 #include <math.hfa>
 
-trait fromint(T) {
+forall(T)
+trait fromint {
     void ?{}(T&, int);
 };
-trait zeroinit(T) {
+forall(T)
+trait zeroinit {
     void ?{}(T&, zero_t);
 };
-trait zero_assign(T) {
+forall(T)
+trait zero_assign {
     T ?=?(T&, zero_t);
 };
-trait subtract(T) {
+forall(T)
+trait subtract {
     T ?-?(T, T);
 };
-trait negate(T) {
+forall(T)
+trait negate {
     T -?(T);
 };
-trait add(T) {
+forall(T)
+trait add {
     T ?+?(T, T);
 };
-trait multiply(T) {
+forall(T)
+trait multiply {
     T ?*?(T, T);
 };
-trait divide(T) {
+forall(T)
+trait divide {
     T ?/?(T, T);
 };
-trait lessthan(T) {
+forall(T)
+trait lessthan {
     int ?<?(T, T);
 };
-trait equality(T) {
+forall(T)
+trait equality {
     int ?==?(T, T);
 };
-trait sqrt(T) {
+forall(T)
+trait sqrt {
     T sqrt(T);
 };
Index: src/AST/Fwd.hpp
===================================================================
--- src/AST/Fwd.hpp	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ src/AST/Fwd.hpp	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -15,4 +15,6 @@
 
 #pragma once
+
+template<typename> struct bitfield;
 
 #include "AST/Node.hpp"
@@ -147,3 +149,21 @@
 class TranslationGlobal;
 
+// For the following types, only use the using type.
+namespace CV {
+	struct qualifier_flags;
+	using Qualifiers = bitfield<qualifier_flags>;
 }
+namespace Function {
+	struct spec_flags;
+	using Specs = bitfield<spec_flags>;
+}
+namespace Storage {
+	struct class_flags;
+	using Classes = bitfield<class_flags>;
+}
+namespace Linkage {
+	struct spec_flags;
+	using Spec = bitfield<spec_flags>;
+}
+
+}
Index: src/AST/Print.cpp
===================================================================
--- src/AST/Print.cpp	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ src/AST/Print.cpp	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -29,10 +29,34 @@
 namespace ast {
 
-template <typename C, typename... T>
-constexpr array<C,sizeof...(T)> make_array(T&&... values)
-{
-	return array<C,sizeof...(T)>{
-		std::forward<T>(values)...
-	};
+namespace {
+
+template<typename C, typename... T>
+constexpr array<C, sizeof...(T)> make_array( T&&... values ) {
+	return array<C, sizeof...(T)>{ std::forward<T>( values )... };
+}
+
+namespace Names {
+	static constexpr auto FuncSpecifiers = make_array<const char*>(
+		"inline", "_Noreturn", "fortran"
+	);
+
+	static constexpr auto StorageClasses = make_array<const char*>(
+		"extern", "static", "auto", "register", "__thread", "_Thread_local"
+	);
+
+	static constexpr auto Qualifiers = make_array<const char*>(
+		"const", "restrict", "volatile", "mutex", "_Atomic"
+	);
+}
+
+template<typename bits_t, size_t N>
+void print( ostream & os, const bits_t & bits,
+		const array<const char *, N> & names ) {
+	if ( !bits.any() ) return;
+	for ( size_t i = 0 ; i < N ; i += 1 ) {
+		if ( bits[i] ) {
+			os << names[i] << ' ';
+		}
+	}
 }
 
@@ -80,41 +104,4 @@
 	static const char* Names[];
 
-	struct Names {
-		static constexpr auto FuncSpecifiers = make_array<const char*>(
-			"inline", "_Noreturn", "fortran"
-		);
-
-		static constexpr auto StorageClasses = make_array<const char*>(
-			"extern", "static", "auto", "register", "__thread", "_Thread_local"
-		);
-
-		static constexpr auto Qualifiers = make_array<const char*>(
-			"const", "restrict", "volatile", "mutex", "_Atomic"
-		);
-	};
-
-	template<typename storage_t, size_t N>
-	void print(const storage_t & storage, const array<const char *, N> & Names ) {
-		if ( storage.any() ) {
-			for ( size_t i = 0; i < Names.size(); i += 1 ) {
-				if ( storage[i] ) {
-					os << Names[i] << ' ';
-				}
-			}
-		}
-	}
-
-	void print( const ast::Function::Specs & specs ) {
-		print(specs, Names::FuncSpecifiers);
-	}
-
-	void print( const ast::Storage::Classes & storage ) {
-		print(storage, Names::StorageClasses);
-	}
-
-	void print( const ast::CV::Qualifiers & qualifiers ) {
-		print(qualifiers, Names::Qualifiers);
-	}
-
 	void print( const std::vector<ast::Label> & labels ) {
 		if ( labels.empty() ) return;
@@ -230,5 +217,5 @@
 		}
 
-		print( node->storage );
+		ast::print( os, node->storage );
 		os << node->typeString();
 
@@ -272,5 +259,5 @@
 
 	void preprint( const ast::Type * node ) {
-		print( node->qualifiers );
+		ast::print( os, node->qualifiers );
 	}
 
@@ -278,10 +265,10 @@
 		print( node->forall );
 		print( node->assertions );
-		print( node->qualifiers );
+		ast::print( os, node->qualifiers );
 	}
 
 	void preprint( const ast::BaseInstType * node ) {
 		print( node->attributes );
-		print( node->qualifiers );
+		ast::print( os, node->qualifiers );
 	}
 
@@ -294,5 +281,5 @@
 		}
 
-		print( node->storage );
+		ast::print( os, node->storage );
 
 		if ( node->type ) {
@@ -338,8 +325,6 @@
 		if ( ! short_mode ) printAll( node->attributes );
 
-		print( node->storage );
-		print( node->funcSpec );
-
-
+		ast::print( os, node->storage );
+		ast::print( os, node->funcSpec );
 
 		if ( node->type && node->isTypeFixed ) {
@@ -1627,4 +1612,6 @@
 };
 
+} // namespace
+
 void print( ostream & os, const ast::Node * node, Indenter indent ) {
 	Printer printer { os, indent, false };
@@ -1637,9 +1624,15 @@
 }
 
-// Annoyingly these needed to be defined out of line to avoid undefined references.
-// The size here needs to be explicit but at least the compiler will produce an error
-// if the wrong size is specified
-constexpr array<const char*, 3> Printer::Names::FuncSpecifiers;
-constexpr array<const char*, 6> Printer::Names::StorageClasses;
-constexpr array<const char*, 5> Printer::Names::Qualifiers;
+void print( ostream & os, Function::Specs specs ) {
+	print( os, specs, Names::FuncSpecifiers );
 }
+
+void print( ostream & os, Storage::Classes storage ) {
+	print( os, storage, Names::StorageClasses );
+}
+
+void print( ostream & os, CV::Qualifiers qualifiers ) {
+	print( os, qualifiers, Names::Qualifiers );
+}
+
+} // namespace ast
Index: src/AST/Print.hpp
===================================================================
--- src/AST/Print.hpp	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ src/AST/Print.hpp	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -16,13 +16,10 @@
 #pragma once
 
-#include <iostream>
-#include <utility>   // for forward
+#include <iosfwd>
 
-#include "AST/Node.hpp"
+#include "AST/Fwd.hpp"
 #include "Common/Indenter.h"
 
 namespace ast {
-
-class Decl;
 
 /// Print a node with the given indenter
@@ -44,3 +41,10 @@
 }
 
+/// Print each cv-qualifier used in the set, followed by a space.
+void print( std::ostream & os, CV::Qualifiers );
+/// Print each function specifier used in the set, followed by a space.
+void print( std::ostream & os, Function::Specs );
+/// Print each storage class used in the set, followed by a space.
+void print( std::ostream & os, Storage::Classes );
+
 }
Index: src/Common/SemanticError.h
===================================================================
--- src/Common/SemanticError.h	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ src/Common/SemanticError.h	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Feb  2 10:59:10 2023
-// Update Count     : 36
+// Last Modified On : Sat Feb 25 12:01:31 2023
+// Update Count     : 37
 //
 
@@ -56,5 +56,5 @@
 	{"self-assign"              , Severity::Warn    , "self assignment of expression: %s"                          },
 	{"reference-conversion"     , Severity::Warn    , "rvalue to reference conversion of rvalue: %s"               },
-	{"qualifiers-zero_t-one_t"  , Severity::Warn    , "questionable use of type qualifier %s with %s"              },
+	{"qualifiers-zero_t-one_t"  , Severity::Warn    , "questionable use of type qualifier(s) with %s"              },
 	{"aggregate-forward-decl"   , Severity::Warn    , "forward declaration of nested aggregate: %s"                },
 	{"superfluous-decl"         , Severity::Warn    , "declaration does not allocate storage: %s"                  },
Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ src/Parser/DeclarationNode.cc	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 12:34:05 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Feb 16 14:12:03 2023
-// Update Count     : 1388
+// Last Modified On : Sat Feb 25 12:15:40 2023
+// Update Count     : 1404
 //
 
@@ -254,5 +254,5 @@
 	newnode->type->enumeration.typed = typed;
 	newnode->type->enumeration.hiding = hiding;
-	if ( base && base->type)  {
+	if ( base && base->type )  {
 		newnode->type->base = base->type;
 	} // if
@@ -567,6 +567,6 @@
 
 	checkQualifiers( type, q->type );
-	if ( (builtin == Zero || builtin == One) && q->type->qualifiers.val != 0 && error.length() == 0 ) {
-		SemanticWarning( yylloc, Warning::BadQualifiersZeroOne, Type::QualifiersNames[ilog2( q->type->qualifiers.val )], builtinTypeNames[builtin] );
+	if ( (builtin == Zero || builtin == One) && q->type->qualifiers.any() && error.length() == 0 ) {
+		SemanticWarning( yylloc, Warning::BadQualifiersZeroOne, builtinTypeNames[builtin] );
 	} // if
 	addQualifiersToType( q->type, type );
@@ -984,5 +984,37 @@
 
 			if ( DeclarationNode * extr = cur->extractAggregate() ) {
-				// handle the case where a structure declaration is contained within an object or type declaration
+				// Handle the case where a SUE declaration is contained within an object or type declaration.
+
+				assert( cur->type );
+				// Replace anonymous SUE name with typedef name to prevent anonymous naming problems across translation units.
+				if ( cur->type->kind == TypeData::Symbolic && cur->type->symbolic.isTypedef ) {
+					assert( extr->type );
+					// Handle anonymous aggregates: typedef struct { int i; } foo
+					extr->type->qualifiers.reset();		// clear any CVs associated with the aggregate
+					if ( extr->type->kind == TypeData::Aggregate && extr->type->aggregate.anon ) {
+						delete extr->type->aggregate.name;
+						extr->type->aggregate.name = new string( "__anonymous_" + *cur->name );
+						extr->type->aggregate.anon = false;
+						assert( cur->type->base );
+						if ( cur->type->base ) {
+							delete cur->type->base->aggInst.aggregate->aggregate.name;
+							cur->type->base->aggInst.aggregate->aggregate.name = new string( "__anonymous_" + *cur->name );
+							cur->type->base->aggInst.aggregate->aggregate.anon = false;
+							cur->type->base->aggInst.aggregate->qualifiers.reset();
+						} // if
+					} // if
+					// Handle anonymous enumeration: typedef enum { A, B, C } foo
+					if ( extr->type->kind == TypeData::Enum && extr->type->enumeration.anon ) {
+						delete extr->type->enumeration.name;
+						extr->type->enumeration.name = new string( "__anonymous_" + *cur->name );
+						extr->type->enumeration.anon = false;
+						assert( cur->type->base );
+						if ( cur->type->base ) {
+							delete cur->type->base->aggInst.aggregate->enumeration.name;
+							cur->type->base->aggInst.aggregate->enumeration.name = new string( "__anonymous_" + *cur->name );
+							cur->type->base->aggInst.aggregate->enumeration.anon = false;
+						} // if
+					} // if
+				} // if
 
 				Declaration * decl = extr->build();
Index: src/Parser/TypeData.h
===================================================================
--- src/Parser/TypeData.h	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ src/Parser/TypeData.h	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 15:18:36 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Feb 19 09:09:39 2023
-// Update Count     : 204
+// Last Modified On : Fri Feb 24 14:25:02 2023
+// Update Count     : 205
 //
 
@@ -41,5 +41,5 @@
 	};
 
-	struct AggInst_t {
+	struct AggInst_t {									// handles SUE
 		TypeData * aggregate = nullptr;
 		ExpressionNode * params = nullptr;
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ src/Parser/parser.yy	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Feb 20 11:31:26 2023
-// Update Count     : 5896
+// Last Modified On : Sat Feb 25 13:23:16 2023
+// Update Count     : 5989
 //
 
@@ -1173,6 +1173,4 @@
 	comma_expression_opt ';'
 		{ $$ = new StatementNode( build_expr( $1 ) ); }
-	| MUTEX '(' ')' comma_expression ';'
-		{ $$ = new StatementNode( build_mutex( nullptr, new StatementNode( build_expr( $4 ) ) ) ); }
 	;
 
@@ -1282,5 +1280,5 @@
 		{
 			$$ = new StatementNode( build_while( new CondCtl( nullptr, NEW_ONE ), maybe_build_compound( $4 ) ) );
-			SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
+			SemanticWarning( yylloc, Warning::SuperfluousElse );
 		}
 	| WHILE '(' conditional_declaration ')' statement	%prec THEN
@@ -1293,5 +1291,5 @@
 		{
 			$$ = new StatementNode( build_do_while( NEW_ONE, maybe_build_compound( $2 ) ) );
-			SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
+			SemanticWarning( yylloc, Warning::SuperfluousElse );
 		}
 	| DO statement WHILE '(' comma_expression ')' ';'
@@ -1304,5 +1302,5 @@
 		{
 			$$ = new StatementNode( build_for( new ForCtrl( (ExpressionNode * )nullptr, (ExpressionNode * )nullptr, (ExpressionNode * )nullptr ), maybe_build_compound( $4 ) ) );
-			SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
+			SemanticWarning( yylloc, Warning::SuperfluousElse );
 		}
 	| FOR '(' for_control_expression_list ')' statement	%prec THEN
@@ -1584,8 +1582,11 @@
 	;
 
-// If MUTEX becomes a general qualifier, there are shift/reduce conflicts, so change syntax to "with mutex".
+// If MUTEX becomes a general qualifier, there are shift/reduce conflicts, so possibly change syntax to "with mutex".
 mutex_statement:
-	MUTEX '(' argument_expression_list ')' statement
-		{ $$ = new StatementNode( build_mutex( $3, $5 ) ); }
+	MUTEX '(' argument_expression_list_opt ')' statement
+		{
+			if ( ! $3 ) { SemanticError( yylloc, "mutex argument list cannot be empty." ); $$ = nullptr; }
+			$$ = new StatementNode( build_mutex( $3, $5 ) );
+		}
 	;
 
@@ -1941,5 +1942,5 @@
 			// if type_specifier is an anon aggregate => name 
 			typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname, "4" );
-			$$ = $3->addType( $2 )->addTypedef();
+			$$ = $3->addType( $2 )->addTypedef();		// watchout frees $2 and $3
 		}
 	| typedef_declaration pop ',' push declarator
@@ -1985,6 +1986,10 @@
 		{
 			assert( $1->type );
-			if ( $1->type->qualifiers.val != 0 ) {
-				SemanticError( yylloc, "Useless type qualifier in empty declaration." ); $$ = nullptr;
+			if ( $1->type->qualifiers.any() ) {			// CV qualifiers ?
+				SemanticError( yylloc, "Useless type qualifier(s) in empty declaration." ); $$ = nullptr;
+			}
+			// enums are never empty declarations because there must have at least one enumeration.
+			if ( $1->type->kind == TypeData::AggregateInst && $1->storageClasses.any() ) { // storage class ?
+				SemanticError( yylloc, "Useless storage qualifier(s) in empty aggregate declaration." ); $$ = nullptr;
 			}
 		}
@@ -2006,8 +2011,7 @@
 	| sue_declaration_specifier invalid_types
 		{
-			SemanticError( yylloc,
-						  ::toString( "Missing ';' after end of ",
-									  $1->type->enumeration.name ? "enum" : AggregateDecl::aggrString( $1->type->aggregate.kind ),
-									  " declaration" ) );
+			SemanticError( yylloc, ::toString( "Missing ';' after end of ",
+				$1->type->enumeration.name ? "enum" : AggregateDecl::aggrString( $1->type->aggregate.kind ),
+				" declaration" ) );
 			$$ = nullptr;
 		}
@@ -2588,5 +2592,5 @@
 	| ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt '{' enumerator_list comma_opt '}'
 	 	{
-			if ( $3->storageClasses.val != 0 || $3->type->qualifiers.val != 0 )
+			if ( $3->storageClasses.val != 0 || $3->type->qualifiers.any() )
 			{ SemanticError( yylloc, "storage-class and CV qualifiers are not meaningful for enumeration constants, which are const." ); }
 
@@ -2599,5 +2603,5 @@
 	| ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt identifier attribute_list_opt
 		{
-			if ( $3->storageClasses.val != 0 || $3->type->qualifiers.val != 0 ) { SemanticError( yylloc, "storage-class and CV qualifiers are not meaningful for enumeration constants, which are const." ); }
+			if ( $3->storageClasses.any() || $3->type->qualifiers.val != 0 ) { SemanticError( yylloc, "storage-class and CV qualifiers are not meaningful for enumeration constants, which are const." ); }
 			typedefTable.makeTypedef( *$6 );
 		}
@@ -2986,5 +2990,5 @@
 	TRAIT identifier_or_type_name '(' type_parameter_list ')' '{' '}'
 		{
-			SemanticWarning( yylloc, Warning::DeprecTraitSyntax, "" );
+			SemanticWarning( yylloc, Warning::DeprecTraitSyntax );
 			$$ = DeclarationNode::newTrait( $2, $4, nullptr );
 		}
@@ -2993,5 +2997,5 @@
 	| TRAIT identifier_or_type_name '(' type_parameter_list ')' '{' push trait_declaration_list pop '}'
 		{
-			SemanticWarning( yylloc, Warning::DeprecTraitSyntax, "" );
+			SemanticWarning( yylloc, Warning::DeprecTraitSyntax );
 			$$ = DeclarationNode::newTrait( $2, $4, $8 );
 		}
@@ -3058,4 +3062,16 @@
 		{ $$ = DeclarationNode::newDirectiveStmt( new StatementNode( build_directive( $1 ) ) ); }
 	| declaration
+		{
+			// Variable declarations of anonymous types requires creating a unique type-name across multiple translation
+			// unit, which is a dubious task, especially because C uses name rather than structural typing; hence it is
+			// disallowed at the moment.
+			if ( $1->linkage == LinkageSpec::Cforall && ! $1->storageClasses.is_static && $1->type && $1->type->kind == TypeData::AggregateInst ) {
+				if ( $1->type->aggInst.aggregate->kind == TypeData::Enum && $1->type->aggInst.aggregate->enumeration.anon ) {
+					SemanticError( yylloc, "extern anonymous enumeration is currently unimplemented." ); $$ = nullptr;
+				} else if ( $1->type->aggInst.aggregate->aggregate.anon ) { // handles struct or union
+					SemanticError( yylloc, "extern anonymous struct/union is currently unimplemented." ); $$ = nullptr;
+				}
+			}
+		}
 	| IDENTIFIER IDENTIFIER
 		{ IdentifierBeforeIdentifier( *$1.str, *$2.str, " declaration" ); $$ = nullptr; }
@@ -3103,5 +3119,5 @@
 	| type_qualifier_list
 		{
-			if ( $1->type->qualifiers.val ) { SemanticError( yylloc, "CV qualifiers cannot be distributed; only storage-class and forall qualifiers." ); }
+			if ( $1->type->qualifiers.any() ) { SemanticError( yylloc, "CV qualifiers cannot be distributed; only storage-class and forall qualifiers." ); }
 			if ( $1->type->forall ) forall = true;		// remember generic type
 		}
@@ -3114,5 +3130,5 @@
 	| declaration_qualifier_list
 		{
-			if ( $1->type && $1->type->qualifiers.val ) { SemanticError( yylloc, "CV qualifiers cannot be distributed; only storage-class and forall qualifiers." ); }
+			if ( $1->type && $1->type->qualifiers.any() ) { SemanticError( yylloc, "CV qualifiers cannot be distributed; only storage-class and forall qualifiers." ); }
 			if ( $1->type && $1->type->forall ) forall = true; // remember generic type
 		}
@@ -3125,5 +3141,5 @@
 	| declaration_qualifier_list type_qualifier_list
 		{
-			if ( ($1->type && $1->type->qualifiers.val) || ($2->type && $2->type->qualifiers.val) ) { SemanticError( yylloc, "CV qualifiers cannot be distributed; only storage-class and forall qualifiers." ); }
+			if ( ($1->type && $1->type->qualifiers.any()) || ($2->type && $2->type->qualifiers.any()) ) { SemanticError( yylloc, "CV qualifiers cannot be distributed; only storage-class and forall qualifiers." ); }
 			if ( ($1->type && $1->type->forall) || ($2->type && $2->type->forall) ) forall = true; // remember generic type
 		}
Index: tests/.expect/attributes.arm64.txt
===================================================================
--- tests/.expect/attributes.arm64.txt	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/.expect/attributes.arm64.txt	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -26,5 +26,5 @@
     return _X4_retS12__anonymous0_1;
 }
-__attribute__ ((unused)) struct __anonymous0 _X5DummyS12__anonymous0_1;
+__attribute__ ((unused)) static struct __anonymous0 _X5DummyS12__anonymous0_1;
 struct __attribute__ ((unused)) Agn1;
 struct __attribute__ ((unused)) Agn2 {
Index: tests/.expect/attributes.x64.txt
===================================================================
--- tests/.expect/attributes.x64.txt	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/.expect/attributes.x64.txt	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -26,5 +26,5 @@
     return _X4_retS12__anonymous0_1;
 }
-__attribute__ ((unused)) struct __anonymous0 _X5DummyS12__anonymous0_1;
+__attribute__ ((unused)) static struct __anonymous0 _X5DummyS12__anonymous0_1;
 struct __attribute__ ((unused)) Agn1;
 struct __attribute__ ((unused)) Agn2 {
Index: tests/.expect/attributes.x86.txt
===================================================================
--- tests/.expect/attributes.x86.txt	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/.expect/attributes.x86.txt	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -26,5 +26,5 @@
     return _X4_retS12__anonymous0_1;
 }
-__attribute__ ((unused)) struct __anonymous0 _X5DummyS12__anonymous0_1;
+__attribute__ ((unused)) static struct __anonymous0 _X5DummyS12__anonymous0_1;
 struct __attribute__ ((unused)) Agn1;
 struct __attribute__ ((unused)) Agn2 {
Index: tests/.expect/declarationSpecifier.arm64.txt
===================================================================
--- tests/.expect/declarationSpecifier.arm64.txt	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/.expect/declarationSpecifier.arm64.txt	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -51,5 +51,5 @@
 
 }
-volatile const struct __anonymous0 _X3x10KVS12__anonymous0_1;
+static volatile const struct __anonymous0 _X3x10KVS12__anonymous0_1;
 struct __anonymous1 {
     signed int _X1ii_1;
@@ -96,5 +96,5 @@
 
 }
-volatile const struct __anonymous1 _X3x11KVS12__anonymous1_1;
+static volatile const struct __anonymous1 _X3x11KVS12__anonymous1_1;
 struct __anonymous2 {
     signed int _X1ii_1;
@@ -141,5 +141,5 @@
 
 }
-volatile const struct __anonymous2 _X3x12KVS12__anonymous2_1;
+static volatile const struct __anonymous2 _X3x12KVS12__anonymous2_1;
 struct __anonymous3 {
     signed int _X1ii_1;
@@ -322,49 +322,4 @@
 }
 static volatile const struct __anonymous6 _X3x16KVS12__anonymous6_1;
-struct __anonymous7 {
-    signed int _X1ii_1;
-};
-static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
-static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
-static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
-static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
-static inline void _X12_constructorFv_S12__anonymous7i_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed int _X1ii_1);
-static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X4_srcS12__anonymous7_1._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
-    struct __anonymous7 _X4_retS12__anonymous7_1;
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X4_srcS12__anonymous7_1._X1ii_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1((&_X4_retS12__anonymous7_1), (*_X4_dstS12__anonymous7_1)));
-    }
-
-    return _X4_retS12__anonymous7_1;
-}
-static inline void _X12_constructorFv_S12__anonymous7i_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed int _X1ii_1){
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X1ii_1) /* ?{} */);
-    }
-
-}
-static volatile const struct __anonymous7 _X3x17KVS12__anonymous7_1;
 volatile const signed short int _X3x20KVs_1;
 static volatile const signed short int _X3x21KVs_1;
@@ -375,4 +330,49 @@
 static volatile const signed short int _X3x26KVs_1;
 static volatile const signed short int _X3x27KVs_1;
+struct __anonymous7 {
+    signed short int _X1is_1;
+};
+static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
+static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
+static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
+static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
+static inline void _X12_constructorFv_S12__anonymous7s_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed short int _X1is_1);
+static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1=_X4_srcS12__anonymous7_1._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
+    struct __anonymous7 _X4_retS12__anonymous7_1;
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1=_X4_srcS12__anonymous7_1._X1is_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1((&_X4_retS12__anonymous7_1), (*_X4_dstS12__anonymous7_1)));
+    }
+
+    return _X4_retS12__anonymous7_1;
+}
+static inline void _X12_constructorFv_S12__anonymous7s_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed short int _X1is_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1=_X1is_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous7 _X3x29KVS12__anonymous7_1;
 struct __anonymous8 {
     signed short int _X1is_1;
@@ -419,5 +419,5 @@
 
 }
-volatile const struct __anonymous8 _X3x29KVS12__anonymous8_1;
+static volatile const struct __anonymous8 _X3x30KVS12__anonymous8_1;
 struct __anonymous9 {
     signed short int _X1is_1;
@@ -464,5 +464,5 @@
 
 }
-volatile const struct __anonymous9 _X3x30KVS12__anonymous9_1;
+static volatile const struct __anonymous9 _X3x31KVS12__anonymous9_1;
 struct __anonymous10 {
     signed short int _X1is_1;
@@ -509,5 +509,5 @@
 
 }
-volatile const struct __anonymous10 _X3x31KVS13__anonymous10_1;
+static volatile const struct __anonymous10 _X3x32KVS13__anonymous10_1;
 struct __anonymous11 {
     signed short int _X1is_1;
@@ -554,5 +554,5 @@
 
 }
-static volatile const struct __anonymous11 _X3x32KVS13__anonymous11_1;
+static volatile const struct __anonymous11 _X3x33KVS13__anonymous11_1;
 struct __anonymous12 {
     signed short int _X1is_1;
@@ -599,5 +599,5 @@
 
 }
-static volatile const struct __anonymous12 _X3x33KVS13__anonymous12_1;
+static volatile const struct __anonymous12 _X3x34KVS13__anonymous12_1;
 struct __anonymous13 {
     signed short int _X1is_1;
@@ -644,95 +644,5 @@
 
 }
-static volatile const struct __anonymous13 _X3x34KVS13__anonymous13_1;
-struct __anonymous14 {
-    signed short int _X1is_1;
-};
-static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
-static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
-static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
-static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
-static inline void _X12_constructorFv_S13__anonymous14s_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed short int _X1is_1);
-static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X4_srcS13__anonymous14_1._X1is_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
-    struct __anonymous14 _X4_retS13__anonymous14_1;
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X4_srcS13__anonymous14_1._X1is_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1((&_X4_retS13__anonymous14_1), (*_X4_dstS13__anonymous14_1)));
-    }
-
-    return _X4_retS13__anonymous14_1;
-}
-static inline void _X12_constructorFv_S13__anonymous14s_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed short int _X1is_1){
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X1is_1) /* ?{} */);
-    }
-
-}
-static volatile const struct __anonymous14 _X3x35KVS13__anonymous14_1;
-struct __anonymous15 {
-    signed short int _X1is_1;
-};
-static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
-static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
-static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
-static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
-static inline void _X12_constructorFv_S13__anonymous15s_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed short int _X1is_1);
-static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X4_srcS13__anonymous15_1._X1is_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
-    struct __anonymous15 _X4_retS13__anonymous15_1;
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X4_srcS13__anonymous15_1._X1is_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1((&_X4_retS13__anonymous15_1), (*_X4_dstS13__anonymous15_1)));
-    }
-
-    return _X4_retS13__anonymous15_1;
-}
-static inline void _X12_constructorFv_S13__anonymous15s_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed short int _X1is_1){
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X1is_1) /* ?{} */);
-    }
-
-}
-static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1;
+static volatile const struct __anonymous13 _X3x35KVS13__anonymous13_1;
 _Thread_local signed int _X3x37i_1;
 __thread signed int _X3x38i_1;
@@ -753,4 +663,94 @@
 static inline volatile const signed short int _X3f27Fs___1();
 static inline volatile const signed short int _X3f28Fs___1();
+struct __anonymous14 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
+static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
+static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
+static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
+static inline void _X12_constructorFv_S13__anonymous14i_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1=_X4_srcS13__anonymous14_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
+    struct __anonymous14 _X4_retS13__anonymous14_1;
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1=_X4_srcS13__anonymous14_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1((&_X4_retS13__anonymous14_1), (*_X4_dstS13__anonymous14_1)));
+    }
+
+    return _X4_retS13__anonymous14_1;
+}
+static inline void _X12_constructorFv_S13__anonymous14i_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1();
+struct __anonymous15 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
+static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
+static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
+static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
+static inline void _X12_constructorFv_S13__anonymous15i_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1=_X4_srcS13__anonymous15_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
+    struct __anonymous15 _X4_retS13__anonymous15_1;
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1=_X4_srcS13__anonymous15_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1((&_X4_retS13__anonymous15_1), (*_X4_dstS13__anonymous15_1)));
+    }
+
+    return _X4_retS13__anonymous15_1;
+}
+static inline void _X12_constructorFv_S13__anonymous15i_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1();
 struct __anonymous16 {
     signed int _X1ii_1;
@@ -797,5 +797,5 @@
 
 }
-static inline volatile const struct __anonymous16 _X3f31FS13__anonymous16___1();
+static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1();
 struct __anonymous17 {
     signed int _X1ii_1;
@@ -842,5 +842,5 @@
 
 }
-static inline volatile const struct __anonymous17 _X3f32FS13__anonymous17___1();
+static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1();
 struct __anonymous18 {
     signed int _X1ii_1;
@@ -887,5 +887,5 @@
 
 }
-static inline volatile const struct __anonymous18 _X3f33FS13__anonymous18___1();
+static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1();
 struct __anonymous19 {
     signed int _X1ii_1;
@@ -932,5 +932,5 @@
 
 }
-static inline volatile const struct __anonymous19 _X3f34FS13__anonymous19___1();
+static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1();
 struct __anonymous20 {
     signed int _X1ii_1;
@@ -977,5 +977,5 @@
 
 }
-static inline volatile const struct __anonymous20 _X3f35FS13__anonymous20___1();
+static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1();
 struct __anonymous21 {
     signed int _X1ii_1;
@@ -1022,95 +1022,5 @@
 
 }
-static inline volatile const struct __anonymous21 _X3f36FS13__anonymous21___1();
-struct __anonymous22 {
-    signed int _X1ii_1;
-};
-static inline void _X12_constructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1);
-static inline void _X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1);
-static inline void _X11_destructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1);
-static inline struct __anonymous22 _X16_operator_assignFS13__anonymous22_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1);
-static inline void _X12_constructorFv_S13__anonymous22i_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, signed int _X1ii_1);
-static inline void _X12_constructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1){
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1){
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X4_srcS13__anonymous22_1._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1){
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous22 _X16_operator_assignFS13__anonymous22_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1){
-    struct __anonymous22 _X4_retS13__anonymous22_1;
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X4_srcS13__anonymous22_1._X1ii_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1((&_X4_retS13__anonymous22_1), (*_X4_dstS13__anonymous22_1)));
-    }
-
-    return _X4_retS13__anonymous22_1;
-}
-static inline void _X12_constructorFv_S13__anonymous22i_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, signed int _X1ii_1){
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X1ii_1) /* ?{} */);
-    }
-
-}
-static inline volatile const struct __anonymous22 _X3f37FS13__anonymous22___1();
-struct __anonymous23 {
-    signed int _X1ii_1;
-};
-static inline void _X12_constructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1);
-static inline void _X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1);
-static inline void _X11_destructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1);
-static inline struct __anonymous23 _X16_operator_assignFS13__anonymous23_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1);
-static inline void _X12_constructorFv_S13__anonymous23i_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, signed int _X1ii_1);
-static inline void _X12_constructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1){
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1){
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X4_srcS13__anonymous23_1._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1){
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous23 _X16_operator_assignFS13__anonymous23_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1){
-    struct __anonymous23 _X4_retS13__anonymous23_1;
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X4_srcS13__anonymous23_1._X1ii_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1((&_X4_retS13__anonymous23_1), (*_X4_dstS13__anonymous23_1)));
-    }
-
-    return _X4_retS13__anonymous23_1;
-}
-static inline void _X12_constructorFv_S13__anonymous23i_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, signed int _X1ii_1){
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X1ii_1) /* ?{} */);
-    }
-
-}
-static inline volatile const struct __anonymous23 _X3f38FS13__anonymous23___1();
+static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1();
 static inline volatile const signed short int _X3f41Fs___1();
 static inline volatile const signed short int _X3f42Fs___1();
Index: tests/.expect/declarationSpecifier.x64.txt
===================================================================
--- tests/.expect/declarationSpecifier.x64.txt	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/.expect/declarationSpecifier.x64.txt	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -51,5 +51,5 @@
 
 }
-volatile const struct __anonymous0 _X3x10KVS12__anonymous0_1;
+static volatile const struct __anonymous0 _X3x10KVS12__anonymous0_1;
 struct __anonymous1 {
     signed int _X1ii_1;
@@ -96,5 +96,5 @@
 
 }
-volatile const struct __anonymous1 _X3x11KVS12__anonymous1_1;
+static volatile const struct __anonymous1 _X3x11KVS12__anonymous1_1;
 struct __anonymous2 {
     signed int _X1ii_1;
@@ -141,5 +141,5 @@
 
 }
-volatile const struct __anonymous2 _X3x12KVS12__anonymous2_1;
+static volatile const struct __anonymous2 _X3x12KVS12__anonymous2_1;
 struct __anonymous3 {
     signed int _X1ii_1;
@@ -322,49 +322,4 @@
 }
 static volatile const struct __anonymous6 _X3x16KVS12__anonymous6_1;
-struct __anonymous7 {
-    signed int _X1ii_1;
-};
-static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
-static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
-static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
-static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
-static inline void _X12_constructorFv_S12__anonymous7i_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed int _X1ii_1);
-static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X4_srcS12__anonymous7_1._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
-    struct __anonymous7 _X4_retS12__anonymous7_1;
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X4_srcS12__anonymous7_1._X1ii_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1((&_X4_retS12__anonymous7_1), (*_X4_dstS12__anonymous7_1)));
-    }
-
-    return _X4_retS12__anonymous7_1;
-}
-static inline void _X12_constructorFv_S12__anonymous7i_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed int _X1ii_1){
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X1ii_1) /* ?{} */);
-    }
-
-}
-static volatile const struct __anonymous7 _X3x17KVS12__anonymous7_1;
 volatile const signed short int _X3x20KVs_1;
 static volatile const signed short int _X3x21KVs_1;
@@ -375,4 +330,49 @@
 static volatile const signed short int _X3x26KVs_1;
 static volatile const signed short int _X3x27KVs_1;
+struct __anonymous7 {
+    signed short int _X1is_1;
+};
+static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
+static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
+static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
+static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
+static inline void _X12_constructorFv_S12__anonymous7s_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed short int _X1is_1);
+static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1=_X4_srcS12__anonymous7_1._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
+    struct __anonymous7 _X4_retS12__anonymous7_1;
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1=_X4_srcS12__anonymous7_1._X1is_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1((&_X4_retS12__anonymous7_1), (*_X4_dstS12__anonymous7_1)));
+    }
+
+    return _X4_retS12__anonymous7_1;
+}
+static inline void _X12_constructorFv_S12__anonymous7s_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed short int _X1is_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1=_X1is_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous7 _X3x29KVS12__anonymous7_1;
 struct __anonymous8 {
     signed short int _X1is_1;
@@ -419,5 +419,5 @@
 
 }
-volatile const struct __anonymous8 _X3x29KVS12__anonymous8_1;
+static volatile const struct __anonymous8 _X3x30KVS12__anonymous8_1;
 struct __anonymous9 {
     signed short int _X1is_1;
@@ -464,5 +464,5 @@
 
 }
-volatile const struct __anonymous9 _X3x30KVS12__anonymous9_1;
+static volatile const struct __anonymous9 _X3x31KVS12__anonymous9_1;
 struct __anonymous10 {
     signed short int _X1is_1;
@@ -509,5 +509,5 @@
 
 }
-volatile const struct __anonymous10 _X3x31KVS13__anonymous10_1;
+static volatile const struct __anonymous10 _X3x32KVS13__anonymous10_1;
 struct __anonymous11 {
     signed short int _X1is_1;
@@ -554,5 +554,5 @@
 
 }
-static volatile const struct __anonymous11 _X3x32KVS13__anonymous11_1;
+static volatile const struct __anonymous11 _X3x33KVS13__anonymous11_1;
 struct __anonymous12 {
     signed short int _X1is_1;
@@ -599,5 +599,5 @@
 
 }
-static volatile const struct __anonymous12 _X3x33KVS13__anonymous12_1;
+static volatile const struct __anonymous12 _X3x34KVS13__anonymous12_1;
 struct __anonymous13 {
     signed short int _X1is_1;
@@ -644,95 +644,5 @@
 
 }
-static volatile const struct __anonymous13 _X3x34KVS13__anonymous13_1;
-struct __anonymous14 {
-    signed short int _X1is_1;
-};
-static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
-static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
-static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
-static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
-static inline void _X12_constructorFv_S13__anonymous14s_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed short int _X1is_1);
-static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X4_srcS13__anonymous14_1._X1is_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
-    struct __anonymous14 _X4_retS13__anonymous14_1;
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X4_srcS13__anonymous14_1._X1is_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1((&_X4_retS13__anonymous14_1), (*_X4_dstS13__anonymous14_1)));
-    }
-
-    return _X4_retS13__anonymous14_1;
-}
-static inline void _X12_constructorFv_S13__anonymous14s_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed short int _X1is_1){
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X1is_1) /* ?{} */);
-    }
-
-}
-static volatile const struct __anonymous14 _X3x35KVS13__anonymous14_1;
-struct __anonymous15 {
-    signed short int _X1is_1;
-};
-static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
-static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
-static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
-static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
-static inline void _X12_constructorFv_S13__anonymous15s_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed short int _X1is_1);
-static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X4_srcS13__anonymous15_1._X1is_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
-    struct __anonymous15 _X4_retS13__anonymous15_1;
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X4_srcS13__anonymous15_1._X1is_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1((&_X4_retS13__anonymous15_1), (*_X4_dstS13__anonymous15_1)));
-    }
-
-    return _X4_retS13__anonymous15_1;
-}
-static inline void _X12_constructorFv_S13__anonymous15s_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed short int _X1is_1){
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X1is_1) /* ?{} */);
-    }
-
-}
-static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1;
+static volatile const struct __anonymous13 _X3x35KVS13__anonymous13_1;
 _Thread_local signed int _X3x37i_1;
 __thread signed int _X3x38i_1;
@@ -753,4 +663,94 @@
 static inline volatile const signed short int _X3f27Fs___1();
 static inline volatile const signed short int _X3f28Fs___1();
+struct __anonymous14 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
+static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
+static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
+static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
+static inline void _X12_constructorFv_S13__anonymous14i_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1=_X4_srcS13__anonymous14_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
+    struct __anonymous14 _X4_retS13__anonymous14_1;
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1=_X4_srcS13__anonymous14_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1((&_X4_retS13__anonymous14_1), (*_X4_dstS13__anonymous14_1)));
+    }
+
+    return _X4_retS13__anonymous14_1;
+}
+static inline void _X12_constructorFv_S13__anonymous14i_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1();
+struct __anonymous15 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
+static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
+static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
+static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
+static inline void _X12_constructorFv_S13__anonymous15i_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1=_X4_srcS13__anonymous15_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
+    struct __anonymous15 _X4_retS13__anonymous15_1;
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1=_X4_srcS13__anonymous15_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1((&_X4_retS13__anonymous15_1), (*_X4_dstS13__anonymous15_1)));
+    }
+
+    return _X4_retS13__anonymous15_1;
+}
+static inline void _X12_constructorFv_S13__anonymous15i_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1();
 struct __anonymous16 {
     signed int _X1ii_1;
@@ -797,5 +797,5 @@
 
 }
-static inline volatile const struct __anonymous16 _X3f31FS13__anonymous16___1();
+static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1();
 struct __anonymous17 {
     signed int _X1ii_1;
@@ -842,5 +842,5 @@
 
 }
-static inline volatile const struct __anonymous17 _X3f32FS13__anonymous17___1();
+static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1();
 struct __anonymous18 {
     signed int _X1ii_1;
@@ -887,5 +887,5 @@
 
 }
-static inline volatile const struct __anonymous18 _X3f33FS13__anonymous18___1();
+static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1();
 struct __anonymous19 {
     signed int _X1ii_1;
@@ -932,5 +932,5 @@
 
 }
-static inline volatile const struct __anonymous19 _X3f34FS13__anonymous19___1();
+static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1();
 struct __anonymous20 {
     signed int _X1ii_1;
@@ -977,5 +977,5 @@
 
 }
-static inline volatile const struct __anonymous20 _X3f35FS13__anonymous20___1();
+static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1();
 struct __anonymous21 {
     signed int _X1ii_1;
@@ -1022,95 +1022,5 @@
 
 }
-static inline volatile const struct __anonymous21 _X3f36FS13__anonymous21___1();
-struct __anonymous22 {
-    signed int _X1ii_1;
-};
-static inline void _X12_constructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1);
-static inline void _X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1);
-static inline void _X11_destructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1);
-static inline struct __anonymous22 _X16_operator_assignFS13__anonymous22_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1);
-static inline void _X12_constructorFv_S13__anonymous22i_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, signed int _X1ii_1);
-static inline void _X12_constructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1){
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1){
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X4_srcS13__anonymous22_1._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1){
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous22 _X16_operator_assignFS13__anonymous22_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1){
-    struct __anonymous22 _X4_retS13__anonymous22_1;
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X4_srcS13__anonymous22_1._X1ii_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1((&_X4_retS13__anonymous22_1), (*_X4_dstS13__anonymous22_1)));
-    }
-
-    return _X4_retS13__anonymous22_1;
-}
-static inline void _X12_constructorFv_S13__anonymous22i_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, signed int _X1ii_1){
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X1ii_1) /* ?{} */);
-    }
-
-}
-static inline volatile const struct __anonymous22 _X3f37FS13__anonymous22___1();
-struct __anonymous23 {
-    signed int _X1ii_1;
-};
-static inline void _X12_constructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1);
-static inline void _X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1);
-static inline void _X11_destructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1);
-static inline struct __anonymous23 _X16_operator_assignFS13__anonymous23_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1);
-static inline void _X12_constructorFv_S13__anonymous23i_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, signed int _X1ii_1);
-static inline void _X12_constructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1){
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1){
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X4_srcS13__anonymous23_1._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1){
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous23 _X16_operator_assignFS13__anonymous23_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1){
-    struct __anonymous23 _X4_retS13__anonymous23_1;
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X4_srcS13__anonymous23_1._X1ii_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1((&_X4_retS13__anonymous23_1), (*_X4_dstS13__anonymous23_1)));
-    }
-
-    return _X4_retS13__anonymous23_1;
-}
-static inline void _X12_constructorFv_S13__anonymous23i_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, signed int _X1ii_1){
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X1ii_1) /* ?{} */);
-    }
-
-}
-static inline volatile const struct __anonymous23 _X3f38FS13__anonymous23___1();
+static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1();
 static inline volatile const signed short int _X3f41Fs___1();
 static inline volatile const signed short int _X3f42Fs___1();
Index: tests/.expect/declarationSpecifier.x86.txt
===================================================================
--- tests/.expect/declarationSpecifier.x86.txt	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/.expect/declarationSpecifier.x86.txt	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -51,5 +51,5 @@
 
 }
-volatile const struct __anonymous0 _X3x10KVS12__anonymous0_1;
+static volatile const struct __anonymous0 _X3x10KVS12__anonymous0_1;
 struct __anonymous1 {
     signed int _X1ii_1;
@@ -96,5 +96,5 @@
 
 }
-volatile const struct __anonymous1 _X3x11KVS12__anonymous1_1;
+static volatile const struct __anonymous1 _X3x11KVS12__anonymous1_1;
 struct __anonymous2 {
     signed int _X1ii_1;
@@ -141,5 +141,5 @@
 
 }
-volatile const struct __anonymous2 _X3x12KVS12__anonymous2_1;
+static volatile const struct __anonymous2 _X3x12KVS12__anonymous2_1;
 struct __anonymous3 {
     signed int _X1ii_1;
@@ -322,49 +322,4 @@
 }
 static volatile const struct __anonymous6 _X3x16KVS12__anonymous6_1;
-struct __anonymous7 {
-    signed int _X1ii_1;
-};
-static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
-static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
-static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
-static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
-static inline void _X12_constructorFv_S12__anonymous7i_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed int _X1ii_1);
-static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X4_srcS12__anonymous7_1._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
-    struct __anonymous7 _X4_retS12__anonymous7_1;
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X4_srcS12__anonymous7_1._X1ii_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1((&_X4_retS12__anonymous7_1), (*_X4_dstS12__anonymous7_1)));
-    }
-
-    return _X4_retS12__anonymous7_1;
-}
-static inline void _X12_constructorFv_S12__anonymous7i_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed int _X1ii_1){
-    {
-        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X1ii_1) /* ?{} */);
-    }
-
-}
-static volatile const struct __anonymous7 _X3x17KVS12__anonymous7_1;
 volatile const signed short int _X3x20KVs_1;
 static volatile const signed short int _X3x21KVs_1;
@@ -375,4 +330,49 @@
 static volatile const signed short int _X3x26KVs_1;
 static volatile const signed short int _X3x27KVs_1;
+struct __anonymous7 {
+    signed short int _X1is_1;
+};
+static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
+static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
+static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
+static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
+static inline void _X12_constructorFv_S12__anonymous7s_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed short int _X1is_1);
+static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1=_X4_srcS12__anonymous7_1._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
+    struct __anonymous7 _X4_retS12__anonymous7_1;
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1=_X4_srcS12__anonymous7_1._X1is_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1((&_X4_retS12__anonymous7_1), (*_X4_dstS12__anonymous7_1)));
+    }
+
+    return _X4_retS12__anonymous7_1;
+}
+static inline void _X12_constructorFv_S12__anonymous7s_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed short int _X1is_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1is_1=_X1is_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous7 _X3x29KVS12__anonymous7_1;
 struct __anonymous8 {
     signed short int _X1is_1;
@@ -419,5 +419,5 @@
 
 }
-volatile const struct __anonymous8 _X3x29KVS12__anonymous8_1;
+static volatile const struct __anonymous8 _X3x30KVS12__anonymous8_1;
 struct __anonymous9 {
     signed short int _X1is_1;
@@ -464,5 +464,5 @@
 
 }
-volatile const struct __anonymous9 _X3x30KVS12__anonymous9_1;
+static volatile const struct __anonymous9 _X3x31KVS12__anonymous9_1;
 struct __anonymous10 {
     signed short int _X1is_1;
@@ -509,5 +509,5 @@
 
 }
-volatile const struct __anonymous10 _X3x31KVS13__anonymous10_1;
+static volatile const struct __anonymous10 _X3x32KVS13__anonymous10_1;
 struct __anonymous11 {
     signed short int _X1is_1;
@@ -554,5 +554,5 @@
 
 }
-static volatile const struct __anonymous11 _X3x32KVS13__anonymous11_1;
+static volatile const struct __anonymous11 _X3x33KVS13__anonymous11_1;
 struct __anonymous12 {
     signed short int _X1is_1;
@@ -599,5 +599,5 @@
 
 }
-static volatile const struct __anonymous12 _X3x33KVS13__anonymous12_1;
+static volatile const struct __anonymous12 _X3x34KVS13__anonymous12_1;
 struct __anonymous13 {
     signed short int _X1is_1;
@@ -644,95 +644,5 @@
 
 }
-static volatile const struct __anonymous13 _X3x34KVS13__anonymous13_1;
-struct __anonymous14 {
-    signed short int _X1is_1;
-};
-static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
-static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
-static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
-static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
-static inline void _X12_constructorFv_S13__anonymous14s_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed short int _X1is_1);
-static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X4_srcS13__anonymous14_1._X1is_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
-    struct __anonymous14 _X4_retS13__anonymous14_1;
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X4_srcS13__anonymous14_1._X1is_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1((&_X4_retS13__anonymous14_1), (*_X4_dstS13__anonymous14_1)));
-    }
-
-    return _X4_retS13__anonymous14_1;
-}
-static inline void _X12_constructorFv_S13__anonymous14s_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed short int _X1is_1){
-    {
-        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X1is_1) /* ?{} */);
-    }
-
-}
-static volatile const struct __anonymous14 _X3x35KVS13__anonymous14_1;
-struct __anonymous15 {
-    signed short int _X1is_1;
-};
-static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
-static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
-static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
-static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
-static inline void _X12_constructorFv_S13__anonymous15s_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed short int _X1is_1);
-static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X4_srcS13__anonymous15_1._X1is_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
-    struct __anonymous15 _X4_retS13__anonymous15_1;
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X4_srcS13__anonymous15_1._X1is_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1((&_X4_retS13__anonymous15_1), (*_X4_dstS13__anonymous15_1)));
-    }
-
-    return _X4_retS13__anonymous15_1;
-}
-static inline void _X12_constructorFv_S13__anonymous15s_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed short int _X1is_1){
-    {
-        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X1is_1) /* ?{} */);
-    }
-
-}
-static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1;
+static volatile const struct __anonymous13 _X3x35KVS13__anonymous13_1;
 _Thread_local signed int _X3x37i_1;
 __thread signed int _X3x38i_1;
@@ -753,4 +663,94 @@
 static inline volatile const signed short int _X3f27Fs___1();
 static inline volatile const signed short int _X3f28Fs___1();
+struct __anonymous14 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
+static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
+static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
+static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
+static inline void _X12_constructorFv_S13__anonymous14i_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1=_X4_srcS13__anonymous14_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
+    struct __anonymous14 _X4_retS13__anonymous14_1;
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1=_X4_srcS13__anonymous14_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1((&_X4_retS13__anonymous14_1), (*_X4_dstS13__anonymous14_1)));
+    }
+
+    return _X4_retS13__anonymous14_1;
+}
+static inline void _X12_constructorFv_S13__anonymous14i_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1();
+struct __anonymous15 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
+static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
+static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
+static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
+static inline void _X12_constructorFv_S13__anonymous15i_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1=_X4_srcS13__anonymous15_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
+    struct __anonymous15 _X4_retS13__anonymous15_1;
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1=_X4_srcS13__anonymous15_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1((&_X4_retS13__anonymous15_1), (*_X4_dstS13__anonymous15_1)));
+    }
+
+    return _X4_retS13__anonymous15_1;
+}
+static inline void _X12_constructorFv_S13__anonymous15i_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1();
 struct __anonymous16 {
     signed int _X1ii_1;
@@ -797,5 +797,5 @@
 
 }
-static inline volatile const struct __anonymous16 _X3f31FS13__anonymous16___1();
+static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1();
 struct __anonymous17 {
     signed int _X1ii_1;
@@ -842,5 +842,5 @@
 
 }
-static inline volatile const struct __anonymous17 _X3f32FS13__anonymous17___1();
+static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1();
 struct __anonymous18 {
     signed int _X1ii_1;
@@ -887,5 +887,5 @@
 
 }
-static inline volatile const struct __anonymous18 _X3f33FS13__anonymous18___1();
+static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1();
 struct __anonymous19 {
     signed int _X1ii_1;
@@ -932,5 +932,5 @@
 
 }
-static inline volatile const struct __anonymous19 _X3f34FS13__anonymous19___1();
+static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1();
 struct __anonymous20 {
     signed int _X1ii_1;
@@ -977,5 +977,5 @@
 
 }
-static inline volatile const struct __anonymous20 _X3f35FS13__anonymous20___1();
+static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1();
 struct __anonymous21 {
     signed int _X1ii_1;
@@ -1022,95 +1022,5 @@
 
 }
-static inline volatile const struct __anonymous21 _X3f36FS13__anonymous21___1();
-struct __anonymous22 {
-    signed int _X1ii_1;
-};
-static inline void _X12_constructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1);
-static inline void _X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1);
-static inline void _X11_destructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1);
-static inline struct __anonymous22 _X16_operator_assignFS13__anonymous22_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1);
-static inline void _X12_constructorFv_S13__anonymous22i_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, signed int _X1ii_1);
-static inline void _X12_constructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1){
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1){
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X4_srcS13__anonymous22_1._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1){
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous22 _X16_operator_assignFS13__anonymous22_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1){
-    struct __anonymous22 _X4_retS13__anonymous22_1;
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X4_srcS13__anonymous22_1._X1ii_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1((&_X4_retS13__anonymous22_1), (*_X4_dstS13__anonymous22_1)));
-    }
-
-    return _X4_retS13__anonymous22_1;
-}
-static inline void _X12_constructorFv_S13__anonymous22i_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, signed int _X1ii_1){
-    {
-        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X1ii_1) /* ?{} */);
-    }
-
-}
-static inline volatile const struct __anonymous22 _X3f37FS13__anonymous22___1();
-struct __anonymous23 {
-    signed int _X1ii_1;
-};
-static inline void _X12_constructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1);
-static inline void _X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1);
-static inline void _X11_destructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1);
-static inline struct __anonymous23 _X16_operator_assignFS13__anonymous23_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1);
-static inline void _X12_constructorFv_S13__anonymous23i_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, signed int _X1ii_1);
-static inline void _X12_constructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1){
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1){
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X4_srcS13__anonymous23_1._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1){
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1) /* ^?{} */);
-    }
-
-}
-static inline struct __anonymous23 _X16_operator_assignFS13__anonymous23_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1){
-    struct __anonymous23 _X4_retS13__anonymous23_1;
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X4_srcS13__anonymous23_1._X1ii_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1((&_X4_retS13__anonymous23_1), (*_X4_dstS13__anonymous23_1)));
-    }
-
-    return _X4_retS13__anonymous23_1;
-}
-static inline void _X12_constructorFv_S13__anonymous23i_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, signed int _X1ii_1){
-    {
-        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X1ii_1) /* ?{} */);
-    }
-
-}
-static inline volatile const struct __anonymous23 _X3f38FS13__anonymous23___1();
+static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1();
 static inline volatile const signed short int _X3f41Fs___1();
 static inline volatile const signed short int _X3f42Fs___1();
Index: tests/attributes.cfa
===================================================================
--- tests/attributes.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/attributes.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,6 +10,6 @@
 // Created On       : Mon Feb  6 16:07:02 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Mar 15 13:53:31 2021
-// Update Count     : 38
+// Last Modified On : Thu Feb 23 20:33:07 2023
+// Update Count     : 39
 // 
 
@@ -22,5 +22,5 @@
 
 // aggregate_name
-struct __attribute__(( unused )) {} Dummy;
+static struct __attribute__(( unused )) {} Dummy;
 struct __attribute__(( unused )) Agn1;
 struct __attribute__(( unused )) Agn2 {};
Index: tests/avltree/avl.h
===================================================================
--- tests/avltree/avl.h	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/avltree/avl.h	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -9,5 +9,6 @@
 // #include <lib.h>
 
-trait Comparable(T) {
+forall(T)
+trait Comparable {
   int ?<?(T, T);
 };
Index: tests/concurrent/signal/disjoint.cfa
===================================================================
--- tests/concurrent/signal/disjoint.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/concurrent/signal/disjoint.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -38,5 +38,5 @@
 
 // Use a global struct because the order needs to match with Signaller thread
-struct {
+static struct {
 	global_t mut;
 	global_data_t data;
Index: tests/declarationSpecifier.cfa
===================================================================
--- tests/declarationSpecifier.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/declarationSpecifier.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,6 +10,6 @@
 // Created On       : Wed Aug 17 08:21:04 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Apr 30 18:20:36 2019
-// Update Count     : 4
+// Last Modified On : Thu Feb 23 20:53:31 2023
+// Update Count     : 8
 //
 
@@ -25,12 +25,11 @@
 short int volatile static const x8;
 
-const volatile struct { int i; } x10;
-const struct { int i; } volatile x11;
-struct { int i; } const volatile x12;
-static const volatile struct { int i; } x13;
-const static struct { int i; } volatile x14;
-struct { int i; } static const volatile x15;
-struct { int i; } const static volatile x16;
-struct { int i; } const volatile static x17;
+static const volatile struct { int i; } x10;
+static const struct { int i; } volatile x11;
+static struct { int i; } const volatile x12;
+const static struct { int i; } volatile x13;
+struct { int i; } static const volatile x14;
+struct { int i; } const static volatile x15;
+struct { int i; } const volatile static x16;
 
 const Int volatile x20;
@@ -43,12 +42,11 @@
 Int volatile static const x27;
 
-const volatile struct { Int i; } x29;
-const struct { Int i; } volatile x30;
-struct { Int i; } const volatile x31;
-static const volatile struct { Int i; } x32;
-const static struct { Int i; } volatile x33;
-struct { Int i; } static const volatile x34;
-struct { Int i; } const static volatile x35;
-struct { Int i; } const volatile static x36;
+static const volatile struct { Int i; } x29;
+static const struct { Int i; } volatile x30;
+static struct { Int i; } const volatile x31;
+const static struct { Int i; } volatile x32;
+struct { Int i; } static const volatile x33;
+struct { Int i; } const static volatile x34;
+struct { Int i; } const volatile static x35;
 
 _Thread_local int x37;
Index: tests/forall.cfa
===================================================================
--- tests/forall.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/forall.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,6 +10,6 @@
 // Created On       : Wed May  9 08:48:15 2018
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Feb  5 07:54:43 2023
-// Update Count     : 90
+// Last Modified On : Thu Feb 23 20:29:59 2023
+// Update Count     : 91
 //
 
@@ -195,5 +195,5 @@
 
 forall( T ) struct S { T t; } (int) x, y, z;
-forall( T ) struct { T t; } (int) a, b, c;
+static forall( T ) struct { T t; } (int) a, b, c;
 
 forall( T ) static forall( S ) {
Index: tests/function-operator.cfa
===================================================================
--- tests/function-operator.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/function-operator.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,6 +10,6 @@
 // Created On       : Fri Aug 25 15:21:11 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Apr 11 18:27:45 2019
-// Update Count     : 10
+// Last Modified On : Sat Feb 25 07:26:10 2023
+// Update Count     : 12
 //
 
@@ -22,7 +22,10 @@
 
 // STL-like Algorithms
-trait Assignable(T &, U &) { T ?=?(T &, U); };
-trait Copyable(T &) { void ?{}(T &, T); };
-trait Destructable(T &) { void ^?{}(T &); };
+forall(T &, U &)
+trait Assignable { T ?=?(T &, U); };
+forall(T &)
+trait Copyable { void ?{}(T &, T); };
+forall(T &)
+trait Destructable { void ^?{}(T &); };
 
 trait Iterator(iter & | sized(iter) | Copyable(iter) | Destructable(iter), T) {
Index: tests/include/includes.cfa
===================================================================
--- tests/include/includes.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/include/includes.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Feb 20 21:51:04 2023
-// Update Count     : 780
+// Last Modified On : Wed Feb 22 10:16:58 2023
+// Update Count     : 811
 //
 
@@ -97,5 +97,5 @@
 #include <ncurses_dll.h>								// may not be installed, comes with ncurses
 #endif
-#include <netdb.h>
+//#include <netdb.h>
 #include <nl_types.h>
 #include <nss.h>
@@ -111,5 +111,5 @@
 #include <pwd.h>
 #include <regex.h>
-#include <resolv.h>
+//#include <resolv.h>
 #include <re_comp.h>
 #include <sched.h>
@@ -170,5 +170,5 @@
 #endif // __CFA__
 
-int main( int argc, char const * argv[] ) {
+int main() {
     #pragma GCC warning "Compiled"							// force non-empty .expect file, NO TABS!!!
 }
Index: tests/io/comp_basic.cfa
===================================================================
--- tests/io/comp_basic.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/io/comp_basic.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -26,8 +26,7 @@
 #include <unistd.h>
 
-struct {
+static struct {
 	barrier & bar;
 	int pipe[2];
-
 } globals;
 
Index: tests/io/comp_fair.cfa
===================================================================
--- tests/io/comp_fair.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/io/comp_fair.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -26,5 +26,5 @@
 #include <unistd.h>
 
-struct {
+static struct {
 	barrier & bar;
 	int pipe[2];
Index: tests/quotedKeyword.cfa
===================================================================
--- tests/quotedKeyword.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/quotedKeyword.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -10,11 +10,11 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Feb  7 19:07:07 2020
-// Update Count     : 25
+// Last Modified On : Thu Feb 23 20:31:05 2023
+// Update Count     : 26
 //
 
 #include <fstream.hfa>
 
-struct {
+static struct {
 	int ``otype;
 	int ``struct;
Index: tests/sum.cfa
===================================================================
--- tests/sum.cfa	(revision ce44c5f70ab0a50322bed0d103a046e00bbadaa7)
+++ tests/sum.cfa	(revision d964c39341a44901d924f02a9e01d5cf08df25cc)
@@ -11,6 +11,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Aug  5 21:27:25 2021
-// Update Count     : 346
+// Last Modified On : Fri Feb 24 22:52:12 2023
+// Update Count     : 347
 //
 
@@ -18,5 +18,6 @@
 #include <stdlib.hfa>
 
-trait sumable( T ) {
+forall( T )
+trait sumable {
 	void ?{}( T &, zero_t );							// 0 literal constructor
 	void ?{}( T &, one_t );								// 1 literal constructor
