Index: libcfa/src/bits/debug.hfa
===================================================================
--- libcfa/src/bits/debug.hfa	(revision fb0f04d09615a0006f8d2eec237f089ba7688917)
+++ libcfa/src/bits/debug.hfa	(revision 96ef156eb6906d418f912ecaadba955f627e7457)
@@ -23,6 +23,6 @@
 	#define __cfaabi_dbg_ctx __PRETTY_FUNCTION__
 	#define __cfaabi_dbg_ctx2 , __PRETTY_FUNCTION__
-	#define __cfaabi_dbg_ctx_param const char caller[]
-	#define __cfaabi_dbg_ctx_param2 , const char caller[]
+	#define __cfaabi_dbg_ctx_param __attribute__((unused)) const char caller[]
+	#define __cfaabi_dbg_ctx_param2 , __attribute__((unused)) const char caller[]
 	#define __cfaabi_dbg_ctx_fwd caller
 	#define __cfaabi_dbg_ctx_fwd2 , caller
Index: libcfa/src/iostream.hfa
===================================================================
--- libcfa/src/iostream.hfa	(revision fb0f04d09615a0006f8d2eec237f089ba7688917)
+++ libcfa/src/iostream.hfa	(revision 96ef156eb6906d418f912ecaadba955f627e7457)
@@ -183,4 +183,11 @@
 };
 
+// FIXME: Should be an anonymous inner union of _Ostream_Manip.
+// Hoisting manually to work around warning of #294.
+union _Ostream_Manip_Mode {
+	unsigned char all;
+	_Ostream_Flags flags;
+};
+
 forall( T )
 struct _Ostream_Manip {
@@ -188,8 +195,5 @@
 	int wd, pc;											// width, precision: signed for computations
 	char base;											// numeric base / floating-point style
-	union {
-		unsigned char all;
-		_Ostream_Flags flags;
-	};
+	inline _Ostream_Manip_Mode;
 }; // _Ostream_Manip
 
@@ -459,5 +463,9 @@
 } // distribution
 
-forall( T & | sized( T ) )
+// FIXME: `| sized(T)` seems to be working around a bug, but it is logically unnecessary.
+// Including sized(T) causes a warning that is telling us to get rid of it.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+forall( T & | sized(T) )
 struct _Istream_Manip {
 	T & val;											// polymorphic base-type
@@ -465,4 +473,5 @@
 	bool ignore;										// do not change input argument
 }; // _Istream_Manip
+#pragma GCC diagnostic pop
 
 #define INPUT_FMT_DECL( T ) \
Index: tests/nowarn/.expect/fstream.txt
===================================================================
--- tests/nowarn/.expect/fstream.txt	(revision 96ef156eb6906d418f912ecaadba955f627e7457)
+++ tests/nowarn/.expect/fstream.txt	(revision 96ef156eb6906d418f912ecaadba955f627e7457)
@@ -0,0 +1,1 @@
+done
Index: tests/nowarn/fstream.cfa
===================================================================
--- tests/nowarn/fstream.cfa	(revision 96ef156eb6906d418f912ecaadba955f627e7457)
+++ tests/nowarn/fstream.cfa	(revision 96ef156eb6906d418f912ecaadba955f627e7457)
@@ -0,0 +1,5 @@
+#include <fstream.hfa>
+
+int main() {
+    sout | "done";
+}
