Add full integer support to the shader language.

TRAC #23080

Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
Author: Jamie Madill

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2400 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/compiler/ParseHelper.cpp b/src/compiler/ParseHelper.cpp
index 07a85aa..ac0b2b0 100644
--- a/src/compiler/ParseHelper.cpp
+++ b/src/compiler/ParseHelper.cpp
@@ -1116,17 +1116,34 @@
         returnType.setArray(false);
     }
 
-    if (qualifier == EvqAttribute && (typeSpecifier.type == EbtBool || typeSpecifier.type == EbtInt))
+    if (shaderVersion < 300)
     {
-        error(typeSpecifier.line, "cannot be bool or int", getQualifierString(qualifier));
-        recover();
-    }
+        if (qualifier == EvqAttribute && (typeSpecifier.type == EbtBool || typeSpecifier.type == EbtInt))
+        {
+            error(typeSpecifier.line, "cannot be bool or int", getQualifierString(qualifier));
+            recover();
+        }
 
-    if ((qualifier == EvqVaryingIn || qualifier == EvqVaryingOut) &&
-        (typeSpecifier.type == EbtBool || typeSpecifier.type == EbtInt))
+        if ((qualifier == EvqVaryingIn || qualifier == EvqVaryingOut) &&
+            (typeSpecifier.type == EbtBool || typeSpecifier.type == EbtInt))
+        {
+            error(typeSpecifier.line, "cannot be bool or int", getQualifierString(qualifier));
+            recover();
+        }
+    }
+    else
     {
-        error(typeSpecifier.line, "cannot be bool or int", getQualifierString(qualifier));
-        recover();
+        if (qualifier == EvqAttribute && typeSpecifier.type == EbtBool)
+        {
+            error(typeSpecifier.line, "cannot be bool", getQualifierString(qualifier));
+            recover();
+        }
+
+        if ((qualifier == EvqVaryingIn || qualifier == EvqVaryingOut) && typeSpecifier.type == EbtBool)
+        {
+            error(typeSpecifier.line, "cannot be bool", getQualifierString(qualifier));
+            recover();
+        }
     }
 
     return returnType;