Removed error from extraneous matrix packing qualifier

Two minor changes:
1) Structs are allowed to have matrix packing qualifiers
2) Adding an extra matrix packing qualifier shouldn't make
   a shader fail to compile

Change-Id: Icbe0178cb6017854c289db90349a17662e868095
Reviewed-on: https://swiftshader-review.googlesource.com/14228
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/OpenGL/compiler/ParseHelper.cpp b/src/OpenGL/compiler/ParseHelper.cpp
index 8d58c5f..578785d 100644
--- a/src/OpenGL/compiler/ParseHelper.cpp
+++ b/src/OpenGL/compiler/ParseHelper.cpp
@@ -2387,10 +2387,9 @@
 		{
 			fieldLayoutQualifier.matrixPacking = blockLayoutQualifier.matrixPacking;
 		}
-		else if(!fieldType->isMatrix())
+		else if(!fieldType->isMatrix() && (fieldType->getBasicType() != EbtStruct))
 		{
-			error(field->line(), "invalid layout qualifier:", getMatrixPackingString(fieldLayoutQualifier.matrixPacking), "can only be used on matrix types");
-			recover();
+			warning(field->line(), "extraneous layout qualifier:", getMatrixPackingString(fieldLayoutQualifier.matrixPacking), "only has an effect on matrix types");
 		}
 
 		fieldType->setLayoutQualifier(fieldLayoutQualifier);