ES31: Add atomic counter for GLSL parsing

This makes shader compiler support the new basic type 'atomic_uint'
and validate its layout qualifiers properly.

BUG=angleproject:1729
TEST=angle_unittests:AtomicCounterTest
     angle_deqp_gles31_tests:dEQP-GLES31.functional.atomic_counter.layout.invalid*
     angle_deqp_gles31_tests:dEQP-GLES31.functional.debug.negative_coverage.*.atomic*

Change-Id: Ia237eadf6ea72314f436a0abbb93a05598e71eba
Reviewed-on: https://chromium-review.googlesource.com/500088
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/compiler/translator/Compiler.cpp b/src/compiler/translator/Compiler.cpp
index 8a08b7c..46da806 100644
--- a/src/compiler/translator/Compiler.cpp
+++ b/src/compiler/translator/Compiler.cpp
@@ -600,6 +600,10 @@
     // It isn't specified whether Sampler2DRect has default precision.
     initSamplerDefaultPrecision(EbtSampler2DRect);
 
+    TPublicType atomicCounter;
+    atomicCounter.initializeBasicType(EbtAtomicCounter);
+    symbolTable.setDefaultPrecision(atomicCounter, EbpHigh);
+
     InsertBuiltInFunctions(shaderType, shaderSpec, resources, symbolTable);
 
     IdentifyBuiltIns(shaderType, shaderSpec, resources, symbolTable);