Index: src/Validate/GenericParameter.cpp
===================================================================
--- src/Validate/GenericParameter.cpp	(revision 9c4330d5ce50f9f19685f814f3e3fef815523ed1)
+++ src/Validate/GenericParameter.cpp	(revision da0edec766476f9bd235acd685e746ea25b1bf5d)
@@ -120,5 +120,14 @@
 }
 
-struct ValidateGenericParamsCore : public ast::WithCodeLocation {
+bool isSizedPolymorphic( const ast::AggregateDecl * decl ) {
+	for ( const auto & param : decl->params ) {
+		if ( param->sized ) return true;
+	}
+	return false;
+}
+
+struct ValidateGenericParamsCore :
+		public ast::WithCodeLocation, public ast::WithGuards {
+	// Generic parameter filling and checks:
 	const ast::StructInstType * previsit( const ast::StructInstType * type ) {
 		assert( location );
@@ -129,4 +138,25 @@
 		assert( location );
 		return validateGeneric( *location, type );
+	}
+
+	// Check parameter and bitfield combinations:
+	bool insideSized = false;
+	void previsit( const ast::StructDecl * decl ) {
+		if ( isSizedPolymorphic( decl ) && !insideSized ) {
+			GuardValue( insideSized ) = true;
+		}
+	}
+
+	void previsit( const ast::UnionDecl * decl ) {
+		if ( isSizedPolymorphic( decl ) && !insideSized ) {
+			GuardValue( insideSized ) = true;
+		}
+	}
+
+	void previsit( const ast::ObjectDecl * decl ) {
+		if ( insideSized && decl->bitfieldWidth ) {
+			SemanticError( decl->location, decl,
+				"Cannot have bitfields inside a sized polymorphic structure." );
+		}
 	}
 };
Index: tests/.expect/polybits.txt
===================================================================
--- tests/.expect/polybits.txt	(revision da0edec766476f9bd235acd685e746ea25b1bf5d)
+++ tests/.expect/polybits.txt	(revision da0edec766476f9bd235acd685e746ea25b1bf5d)
@@ -0,0 +1,6 @@
+polybits.cfa:4:1 error: Cannot have bitfields inside a sized polymorphic structure.bitfield: signed int with bitfield width Constant Expression (7: signed int)
+... with resolved type:
+  signed int
+polybits.cfa:10:1 error: Cannot have bitfields inside a sized polymorphic structure.bitfield: signed int with bitfield width Constant Expression (7: signed int)
+... with resolved type:
+  signed int
Index: tests/polybits.cfa
===================================================================
--- tests/polybits.cfa	(revision da0edec766476f9bd235acd685e746ea25b1bf5d)
+++ tests/polybits.cfa	(revision da0edec766476f9bd235acd685e746ea25b1bf5d)
@@ -0,0 +1,11 @@
+forall( T )
+struct ExampleS {
+	T polyfield;
+	int bitfield :7;
+};
+
+forall( T )
+union ExampleU {
+	T polyfield;
+	int bitfield :7;
+};
