Get all the scoping rules right for ES and non ES, name hiding, built-in overriding, etc.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21948 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2013-06-12 06:13:17 +00:00
parent 3c31bc3289
commit fbe01520b6
9 changed files with 256 additions and 65 deletions

View file

@ -169,11 +169,6 @@ bool AddContextSpecificSymbols(const TBuiltInResource* resources, TInfoSink& inf
return true;
}
//
// Driver must call this first, once, before doing any other
// compiler/linker operations.
//
void SetupBuiltinSymbolTable(int version, EProfile profile)
{
TInfoSink infoSink;
@ -188,6 +183,11 @@ void SetupBuiltinSymbolTable(int version, EProfile profile)
SetGlobalPoolAllocatorPtr(*builtInPoolAllocator);
TSymbolTable symTables[EShLangCount];
if (profile == EEsProfile) {
for (int stage = 0; stage < EShLangCount; ++stage)
symTables[stage].setNoBuiltInRedeclarations();
}
GenerateBuiltInSymbolTable(infoSink, symTables, version, profile);
SetGlobalPoolAllocatorPtr(*PerProcessGPA);