Index: src/SymTab/Autogen.cc
===================================================================
--- src/SymTab/Autogen.cc	(revision 25bd90742f31c21030337e5d2078346ac242351d)
+++ src/SymTab/Autogen.cc	(revision 46adb831d26f53a5b963fcd80d14bef852513334)
@@ -17,4 +17,5 @@
 #include <iterator>
 #include "SynTree/Visitor.h"
+#include "SynTree/Attribute.h"
 #include "SynTree/Type.h"
 #include "SynTree/Statement.h"
@@ -275,4 +276,8 @@
 		// void ?{}(E *, E);
 		FunctionType *copyCtorType = genCopyType( refType->clone() );
+
+		// add unused attribute to parameters of default constructor and destructor
+		ctorType->get_parameters().front()->get_attributes().push_back( new Attribute( "unused" ) );
+		dtorType->get_parameters().front()->get_attributes().push_back( new Attribute( "unused" ) );
 
 		// xxx - should we also generate void ?{}(E *, int) and E ?{}(E *, E)?
@@ -516,4 +521,8 @@
 		cloneAll( typeParams, assignType->get_forall() );
 
+		// add unused attribute to parameters of default constructor and destructor
+		ctorType->get_parameters().front()->get_attributes().push_back( new Attribute( "unused" ) );
+		dtorType->get_parameters().front()->get_attributes().push_back( new Attribute( "unused" ) );
+
 		// Routines at global scope marked "static" to prevent multiple definitions is separate translation units
 		// because each unit generates copies of the default routines for each aggregate.
