Test that struct names may not begin with "gl_" prefix.
Test illegal usages of "gl_" prefix in interface blocks.
Test that redeclaration of gl_PerVertex must be for a subset.
Test that interface blocks cannot declare conflicting names.
Test that in general, interface blocks cannot be redeclared.
Test that the built-in gl_PerVertex interface block can be redeclared.
Test that gl_PerVertex can't be redeclared after it's been used.
Test that gl_PerVertex can't be redeclared multiple times in one shader.
Test that after redeclaration, absent members of gl_PerVertex can't be used.
Test that builtins can't be redeclared both inside and outside gl_PerVertex.
Test inter- and intra-stage gl_PerVertex matching rules.

These tests verify the following linkage rules, from GLSL 4.10:

1. If multiple shaders using members of a built-in block belonging to
the same interface are linked together in the same program, they must
all redeclare the built-in block in the same way, as described in
section 4.3.7 "Interface Blocks" for interface block matching, or a
link error will result.

2. It will also be a link error if some shaders in a program redeclare
a specific built-in interface block while another shader in that
program does not redeclare that interface block yet still uses a
member of that interface block.
Verify array-ness and instance name of gl_PerVertex redeclarations.
Verify that gl_PerVertex can't be redeclared in certain shader types.
Test that gl_in may be redeclared with an array size.