Another round of gcc/g++ fixes.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20819 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
@@ -1,12 +1,11 @@
|
|||||||
INCLUDE = -I. -I../glslang -I../glslang/Include -I../glslang/OSDependent/Linux -I../glslang/MachineIndependent
|
INCLUDE = -I. -I../glslang -I../glslang/Include -I../glslang/OSDependent/Linux -I../glslang/MachineIndependent
|
||||||
WARNINGS = -Wall -Wwrite-strings -Wpointer-arith -Wcast-align -Wstrict-prototypes \
|
WARNINGS = -Wall -Wwrite-strings -Wpointer-arith -Wcast-align -Wstrict-prototypes \
|
||||||
-Wnested-externs
|
-Wnested-externs
|
||||||
DEFINE = -Dlinux -D__i386__
|
|
||||||
|
|
||||||
CPP = g++
|
CPP = g++
|
||||||
CPPOPTIONS = -O3 -Wno-deprecated -D_ALT_NS=1
|
CPPOPTIONS = -O3 -Wno-deprecated -D_ALT_NS=1 -fPIC
|
||||||
CPPOPTIONS = -g -Wno-deprecated -D_ALT_NS=1
|
CPPOPTIONS = -g -Wno-deprecated -D_ALT_NS=1 -fPIC
|
||||||
CPPFLAGS = $(CPPOPTIONS) $(DEFINE) $(INCLUDE)
|
CPPFLAGS = $(CPPOPTIONS) $(INCLUDE)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Linking related
|
# Linking related
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ SHAREDOBJECT:
|
|||||||
cd $(OBJECTPATH); make all
|
cd $(OBJECTPATH); make all
|
||||||
|
|
||||||
%.o : %.cpp
|
%.o : %.cpp
|
||||||
$(CC) -c $<
|
$(CC) -g -c $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# Cleanup
|
# Cleanup
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
#include "./../glslang/Include/ShHandle.h"
|
#include "./../glslang/Include/ShHandle.h"
|
||||||
#include "./../glslang/Public/ShaderLang.h"
|
#include "./../glslang/Public/ShaderLang.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
@@ -283,17 +284,46 @@ void usage()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
int fopen_s(
|
||||||
|
FILE** pFile,
|
||||||
|
const char *filename,
|
||||||
|
const char *mode
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (!pFile || !filename || !mode) {
|
||||||
|
return EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
FILE* f = fopen(filename, mode);
|
||||||
|
if (! f) {
|
||||||
|
if (errno != 0) {
|
||||||
|
return errno;
|
||||||
|
} else {
|
||||||
|
return ENOENT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*pFile = f;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Malloc a string of sufficient size and read a string into it.
|
// Malloc a string of sufficient size and read a string into it.
|
||||||
//
|
//
|
||||||
# define MAX_SOURCE_STRINGS 5
|
|
||||||
char** ReadFileData(const char *fileName)
|
char** ReadFileData(const char *fileName)
|
||||||
{
|
{
|
||||||
FILE *in;
|
FILE *in;
|
||||||
int errorCode = fopen_s(&in, fileName, "r");
|
int errorCode = fopen_s(&in, fileName, "r");
|
||||||
char *fdata;
|
char *fdata;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
char**return_data=(char**)malloc(MAX_SOURCE_STRINGS+1);
|
const int maxSourceStrings = 5;
|
||||||
|
char** return_data = (char**)malloc(maxSourceStrings+1);
|
||||||
|
|
||||||
//return_data[MAX_SOURCE_STRINGS]=NULL;
|
//return_data[MAX_SOURCE_STRINGS]=NULL;
|
||||||
if (errorCode) {
|
if (errorCode) {
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ AR=ar
|
|||||||
|
|
||||||
SRCS=CodeGen.cpp Link.cpp
|
SRCS=CodeGen.cpp Link.cpp
|
||||||
|
|
||||||
|
CPPFLAGS = -fPIC
|
||||||
|
|
||||||
default : all
|
default : all
|
||||||
all : libCodeGen.a
|
all : libCodeGen.a
|
||||||
|
|
||||||
@@ -13,7 +15,7 @@ libCodeGen.a : $(OBJECTS)
|
|||||||
ranlib $@
|
ranlib $@
|
||||||
|
|
||||||
%.o : %.cpp
|
%.o : %.cpp
|
||||||
$(CC) -c $<
|
$(CC) -c $(CPPFLAGS) $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# Cleanup
|
# Cleanup
|
||||||
|
|||||||
@@ -107,6 +107,11 @@ public:
|
|||||||
if (constant.iConst == iConst)
|
if (constant.iConst == iConst)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case EbtUint:
|
||||||
|
if (constant.uConst == uConst)
|
||||||
|
return true;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case EbtFloat:
|
case EbtFloat:
|
||||||
if (constant.fConst == fConst)
|
if (constant.fConst == fConst)
|
||||||
@@ -123,6 +128,8 @@ public:
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
assert(false && "Default missing");
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -62,6 +62,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
#include <string.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
// If we are using guard blocks, we must track each indivual
|
// If we are using guard blocks, we must track each indivual
|
||||||
|
|||||||
@@ -110,6 +110,7 @@ struct TSampler {
|
|||||||
case EbtFloat: break;
|
case EbtFloat: break;
|
||||||
case EbtInt: s.append("i"); break;
|
case EbtInt: s.append("i"); break;
|
||||||
case EbtUint: s.append("u"); break;
|
case EbtUint: s.append("u"); break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
if (image)
|
if (image)
|
||||||
s.append("image");
|
s.append("image");
|
||||||
@@ -122,6 +123,7 @@ struct TSampler {
|
|||||||
case EsdCube: s.append("Cube"); break;
|
case EsdCube: s.append("Cube"); break;
|
||||||
case EsdRect: s.append("2DRect"); break;
|
case EsdRect: s.append("2DRect"); break;
|
||||||
case EsdBuffer: s.append("Buffer"); break;
|
case EsdBuffer: s.append("Buffer"); break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
if (ms)
|
if (ms)
|
||||||
s.append("MS");
|
s.append("MS");
|
||||||
@@ -453,7 +455,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TString TType::getCompleteString() const
|
TString getCompleteString() const
|
||||||
{
|
{
|
||||||
const int maxSize = 200;
|
const int maxSize = 200;
|
||||||
char buf[maxSize];
|
char buf[maxSize];
|
||||||
|
|||||||
@@ -1318,6 +1318,9 @@ void IdentifyBuiltIns(int version, EProfile profile, EShLanguage language, TSymb
|
|||||||
case EShLangTessEvaluation:
|
case EShLangTessEvaluation:
|
||||||
case EShLangGeometry:
|
case EShLangGeometry:
|
||||||
// TODO: support these stages
|
// TODO: support these stages
|
||||||
|
|
||||||
|
default:
|
||||||
|
assert(false && "Language not supported");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn
|
|||||||
case EOpMul:
|
case EOpMul:
|
||||||
if (left->getType().getBasicType() == EbtStruct || left->getType().getBasicType() == EbtBool || left->getType().isArray())
|
if (left->getType().getBasicType() == EbtStruct || left->getType().getBasicType() == EbtBool || left->getType().isArray())
|
||||||
return 0;
|
return 0;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -218,6 +219,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermNode* childNode,
|
|||||||
case EOpNegative:
|
case EOpNegative:
|
||||||
if (child->getType().getBasicType() == EbtStruct || child->getType().isArray())
|
if (child->getType().getBasicType() == EbtStruct || child->getType().isArray())
|
||||||
return 0;
|
return 0;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -229,6 +231,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermNode* childNode,
|
|||||||
case EOpConstructBool: newType = EbtBool; break;
|
case EOpConstructBool: newType = EbtBool; break;
|
||||||
case EOpConstructFloat: newType = EbtFloat; break;
|
case EOpConstructFloat: newType = EbtFloat; break;
|
||||||
case EOpConstructDouble: newType = EbtDouble; break;
|
case EOpConstructDouble: newType = EbtDouble; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newType != EbtVoid) {
|
if (newType != EbtVoid) {
|
||||||
@@ -249,6 +252,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermNode* childNode,
|
|||||||
case EOpConstructFloat:
|
case EOpConstructFloat:
|
||||||
case EOpConstructDouble:
|
case EOpConstructDouble:
|
||||||
return child;
|
return child;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
|
|
||||||
TIntermConstantUnion *childTempConstant = 0;
|
TIntermConstantUnion *childTempConstant = 0;
|
||||||
|
|||||||
@@ -11,13 +11,13 @@ LIBCODEGEN=./../GenericCodeGen/libCodeGen.a
|
|||||||
OBJECTS= Initialize.o IntermTraverse.o \
|
OBJECTS= Initialize.o IntermTraverse.o \
|
||||||
Intermediate.o ParseHelper.o PoolAlloc.o QualifierAlive.o \
|
Intermediate.o ParseHelper.o PoolAlloc.o QualifierAlive.o \
|
||||||
RemoveTree.o ShaderLang.o intermOut.o parseConst.o SymbolTable.o \
|
RemoveTree.o ShaderLang.o intermOut.o parseConst.o SymbolTable.o \
|
||||||
InfoSink.o
|
InfoSink.o Versions.o Constant.o
|
||||||
|
|
||||||
SRCS= gen_glslang.cpp gen_glslang_tab.cpp Initialize.cpp IntermTraverse.cpp \
|
SRCS= gen_glslang.cpp gen_glslang_tab.cpp Initialize.cpp IntermTraverse.cpp \
|
||||||
Intermediate.cpp ParseHelper.cpp PoolAlloc.cp QualifierAlive.cpp \
|
Intermediate.cpp ParseHelper.cpp PoolAlloc.cp QualifierAlive.cpp \
|
||||||
RemoveTree.cpp ShaderLang.cpp SymbolTable.cpp intermOut.cpp \
|
RemoveTree.cpp ShaderLang.cpp SymbolTable.cpp intermOut.cpp \
|
||||||
parseConst.cpp InfoSink.cpp
|
parseConst.cpp InfoSink.cpp Versions.cpp Constant.cpp
|
||||||
CPPFLAGS=$(DEFINE) $(INCLUDE)
|
CPPFLAGS=$(DEFINE) $(INCLUDE) -fPIC
|
||||||
SHAREDOBJECT=./lib/libglslang.so
|
SHAREDOBJECT=./lib/libglslang.so
|
||||||
|
|
||||||
default: all
|
default: all
|
||||||
@@ -26,13 +26,13 @@ all: $(SHAREDOBJECT)
|
|||||||
|
|
||||||
$(SHAREDOBJECT): gen_glslang.o gen_glslang_tab.o $(OBJECTS) \
|
$(SHAREDOBJECT): gen_glslang.o gen_glslang_tab.o $(OBJECTS) \
|
||||||
$(LIBPREPROCESSOR) $(LIBCODEGEN) $(LIBOSDEPENDENT) $(LIBINITIALISATION)
|
$(LIBPREPROCESSOR) $(LIBCODEGEN) $(LIBOSDEPENDENT) $(LIBINITIALISATION)
|
||||||
$(CC) -fPIC -shared -lc -o $@ $(OBJECTS) $(LIBPREPROCESSOR) $(LIBCODEGEN) $(LIBOSDEPENDENT) $(LIBINITIALISATION) gen_glslang.o gen_glslang_tab.o
|
$(CC) -fPIC -shared -o $@ -rdynamic -Wl,-whole-archive $(OBJECTS) $(LIBPREPROCESSOR) $(LIBCODEGEN) $(LIBOSDEPENDENT) $(LIBINITIALISATION) gen_glslang.o gen_glslang_tab.o -Wl,-no-whole-archive
|
||||||
|
|
||||||
gen_glslang.o : gen_glslang.cpp glslang_tab.h
|
gen_glslang.o : gen_glslang.cpp glslang_tab.h
|
||||||
$(CC) -c $(INCLUDE) gen_glslang.cpp -o $@
|
$(CC) -fPIC -c $(INCLUDE) gen_glslang.cpp -o $@
|
||||||
|
|
||||||
gen_glslang_tab.o : gen_glslang_tab.cpp
|
gen_glslang_tab.o : gen_glslang_tab.cpp
|
||||||
$(CC) -c $(INCLUDE) gen_glslang_tab.cpp -o $@
|
$(CC) -fPIC -c $(INCLUDE) gen_glslang_tab.cpp -o $@
|
||||||
|
|
||||||
gen_glslang.cpp: glslang.l
|
gen_glslang.cpp: glslang.l
|
||||||
@echo Generating gen_glslang.cpp
|
@echo Generating gen_glslang.cpp
|
||||||
@@ -159,3 +159,5 @@ parseConst.o: ../Include/ConstantUnion.h ../Include/InfoSink.h
|
|||||||
parseConst.o: localintermediate.h ../Include/intermediate.h
|
parseConst.o: localintermediate.h ../Include/intermediate.h
|
||||||
parseConst.o: ../Public/ShaderLang.h
|
parseConst.o: ../Public/ShaderLang.h
|
||||||
InfoSink.o: ../Include/InfoSink.h
|
InfoSink.o: ../Include/InfoSink.h
|
||||||
|
Versions.o: ParseHelper.h Versions.h ../Include/ShHandle.h SymbolTable.h localintermediate.h
|
||||||
|
Constant.o: localintermediate.h ../Include/intermediate.h ../Public/ShaderLang.h SymbolTable.h Versions.h
|
||||||
|
|||||||
@@ -264,6 +264,7 @@ void TParseContext::variableErrorCheck(TIntermTyped*& nodePtr)
|
|||||||
case EvqPointCoord:
|
case EvqPointCoord:
|
||||||
profileRequires(symbol->getLine(), ENoProfile, 120, 0, "gl_PointCoord");
|
profileRequires(symbol->getLine(), ENoProfile, 120, 0, "gl_PointCoord");
|
||||||
break;
|
break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -647,6 +648,7 @@ bool TParseContext::globalQualifierFixAndErrorCheck(int line, TQualifier& qualif
|
|||||||
error(line, "cannot use 'inout' at global scope", "", "");
|
error(line, "cannot use 'inout' at global scope", "", "");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
// This is the platform independent interface between an OGL driver
|
// This is the platform independent interface between an OGL driver
|
||||||
// and the shading language compiler/linker.
|
// and the shading language compiler/linker.
|
||||||
//
|
//
|
||||||
|
#include <string.h>
|
||||||
#include "SymbolTable.h"
|
#include "SymbolTable.h"
|
||||||
#include "ParseHelper.h"
|
#include "ParseHelper.h"
|
||||||
|
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ void TType::buildMangledName(TString& mangledName)
|
|||||||
switch (sampler.type) {
|
switch (sampler.type) {
|
||||||
case EbtInt: mangledName += "i"; break;
|
case EbtInt: mangledName += "i"; break;
|
||||||
case EbtUint: mangledName += "u"; break;
|
case EbtUint: mangledName += "u"; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
if (sampler.image)
|
if (sampler.image)
|
||||||
mangledName += "I";
|
mangledName += "I";
|
||||||
@@ -80,6 +81,7 @@ void TType::buildMangledName(TString& mangledName)
|
|||||||
case EsdCube: mangledName += "C"; break;
|
case EsdCube: mangledName += "C"; break;
|
||||||
case EsdRect: mangledName += "R2"; break;
|
case EsdRect: mangledName += "R2"; break;
|
||||||
case EsdBuffer: mangledName += "B"; break;
|
case EsdBuffer: mangledName += "B"; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EbtStruct:
|
case EbtStruct:
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ void TParseContext::profileRequires(int line, EProfile callingProfile, int minVe
|
|||||||
case EBhEnable:
|
case EBhEnable:
|
||||||
okay = true;
|
okay = true;
|
||||||
break;
|
break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -920,6 +920,8 @@ void updateExtensionBehavior(const char* extName, const char* behavior)
|
|||||||
msg = TString("extension '") + extName + "' is not supported";
|
msg = TString("extension '") + extName + "' is not supported";
|
||||||
pc.infoSink.info.message(EPrefixWarning, msg.c_str(), yylineno);
|
pc.infoSink.info.message(EPrefixWarning, msg.c_str(), yylineno);
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
assert(0 && "unexpected behaviorVal");
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -669,6 +669,7 @@ function_identifier
|
|||||||
case 2: op = EOpConstructMat2x2; break;
|
case 2: op = EOpConstructMat2x2; break;
|
||||||
case 3: op = EOpConstructMat2x3; break;
|
case 3: op = EOpConstructMat2x3; break;
|
||||||
case 4: op = EOpConstructMat2x4; break;
|
case 4: op = EOpConstructMat2x4; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
@@ -676,6 +677,7 @@ function_identifier
|
|||||||
case 2: op = EOpConstructMat3x2; break;
|
case 2: op = EOpConstructMat3x2; break;
|
||||||
case 3: op = EOpConstructMat3x3; break;
|
case 3: op = EOpConstructMat3x3; break;
|
||||||
case 4: op = EOpConstructMat3x4; break;
|
case 4: op = EOpConstructMat3x4; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
@@ -683,8 +685,10 @@ function_identifier
|
|||||||
case 2: op = EOpConstructMat4x2; break;
|
case 2: op = EOpConstructMat4x2; break;
|
||||||
case 3: op = EOpConstructMat4x3; break;
|
case 3: op = EOpConstructMat4x3; break;
|
||||||
case 4: op = EOpConstructMat4x4; break;
|
case 4: op = EOpConstructMat4x4; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch($1.vectorSize) {
|
switch($1.vectorSize) {
|
||||||
@@ -692,6 +696,7 @@ function_identifier
|
|||||||
case 2: op = EOpConstructVec2; break;
|
case 2: op = EOpConstructVec2; break;
|
||||||
case 3: op = EOpConstructVec3; break;
|
case 3: op = EOpConstructVec3; break;
|
||||||
case 4: op = EOpConstructVec4; break;
|
case 4: op = EOpConstructVec4; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -703,6 +708,7 @@ function_identifier
|
|||||||
case 2: op = EOpConstructDMat2x2; break;
|
case 2: op = EOpConstructDMat2x2; break;
|
||||||
case 3: op = EOpConstructDMat2x3; break;
|
case 3: op = EOpConstructDMat2x3; break;
|
||||||
case 4: op = EOpConstructDMat2x4; break;
|
case 4: op = EOpConstructDMat2x4; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
@@ -710,6 +716,7 @@ function_identifier
|
|||||||
case 2: op = EOpConstructDMat3x2; break;
|
case 2: op = EOpConstructDMat3x2; break;
|
||||||
case 3: op = EOpConstructDMat3x3; break;
|
case 3: op = EOpConstructDMat3x3; break;
|
||||||
case 4: op = EOpConstructDMat3x4; break;
|
case 4: op = EOpConstructDMat3x4; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
@@ -717,6 +724,7 @@ function_identifier
|
|||||||
case 2: op = EOpConstructDMat4x2; break;
|
case 2: op = EOpConstructDMat4x2; break;
|
||||||
case 3: op = EOpConstructDMat4x3; break;
|
case 3: op = EOpConstructDMat4x3; break;
|
||||||
case 4: op = EOpConstructDMat4x4; break;
|
case 4: op = EOpConstructDMat4x4; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -726,6 +734,7 @@ function_identifier
|
|||||||
case 2: op = EOpConstructDVec2; break;
|
case 2: op = EOpConstructDVec2; break;
|
||||||
case 3: op = EOpConstructDVec3; break;
|
case 3: op = EOpConstructDVec3; break;
|
||||||
case 4: op = EOpConstructDVec4; break;
|
case 4: op = EOpConstructDVec4; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -735,6 +744,7 @@ function_identifier
|
|||||||
case 2: op = EOpConstructIVec2; break;
|
case 2: op = EOpConstructIVec2; break;
|
||||||
case 3: op = EOpConstructIVec3; break;
|
case 3: op = EOpConstructIVec3; break;
|
||||||
case 4: op = EOpConstructIVec4; break;
|
case 4: op = EOpConstructIVec4; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EbtBool:
|
case EbtBool:
|
||||||
@@ -743,8 +753,10 @@ function_identifier
|
|||||||
case 2: op = EOpConstructBVec2; break;
|
case 2: op = EOpConstructBVec2; break;
|
||||||
case 3: op = EOpConstructBVec3; break;
|
case 3: op = EOpConstructBVec3; break;
|
||||||
case 4: op = EOpConstructBVec4; break;
|
case 4: op = EOpConstructBVec4; break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
if (op == EOpNull) {
|
if (op == EOpNull) {
|
||||||
parseContext.error($1.line, "cannot construct this type", TType::getBasicString($1.type), "");
|
parseContext.error($1.line, "cannot construct this type", TType::getBasicString($1.type), "");
|
||||||
@@ -829,7 +841,7 @@ unary_expression
|
|||||||
case EOpNegative: errorOp[0] = '-'; break;
|
case EOpNegative: errorOp[0] = '-'; break;
|
||||||
case EOpLogicalNot: errorOp[0] = '!'; break;
|
case EOpLogicalNot: errorOp[0] = '!'; break;
|
||||||
case EOpBitwiseNot: errorOp[0] = '~'; break;
|
case EOpBitwiseNot: errorOp[0] = '~'; break;
|
||||||
default: break;
|
default: break; // some compilers want this
|
||||||
}
|
}
|
||||||
parseContext.unaryOpError($1.line, errorOp, $2->getCompleteString());
|
parseContext.unaryOpError($1.line, errorOp, $2->getCompleteString());
|
||||||
parseContext.recover();
|
parseContext.recover();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
INCLUDE = -I../
|
INCLUDE = -I../
|
||||||
CC = g++
|
CC = gcc
|
||||||
|
|
||||||
CPPFLAGS=$(DEFINE) $(INCLUDE)
|
CPPFLAGS=$(DEFINE) $(INCLUDE) -fPIC
|
||||||
|
|
||||||
OBJECTS = atom.o cpp.o cppstruct.o memory.o scanner.o symbols.o tokens.o
|
OBJECTS = atom.o cpp.o cppstruct.o memory.o scanner.o symbols.o tokens.o
|
||||||
AR=ar
|
AR=ar
|
||||||
@@ -14,7 +14,7 @@ libPreprocessor.a : $(OBJECTS)
|
|||||||
ranlib $@
|
ranlib $@
|
||||||
|
|
||||||
%.o : %.c
|
%.o : %.c
|
||||||
$(CC) $(CPPFLAGS) -c $<
|
$(CC) -c $(CPPFLAGS) $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# Cleanup
|
# Cleanup
|
||||||
|
|||||||
@@ -128,6 +128,10 @@ static Scope *macros = 0;
|
|||||||
|
|
||||||
static SourceLoc ifloc; /* outermost #if */
|
static SourceLoc ifloc; /* outermost #if */
|
||||||
|
|
||||||
|
int ChkCorrectElseNesting(void);
|
||||||
|
int PredefineMacro(char *);
|
||||||
|
void FreeMacro(MacroSymbol *);
|
||||||
|
|
||||||
int InitCPP(void)
|
int InitCPP(void)
|
||||||
{
|
{
|
||||||
char buffer[64], *t;
|
char buffer[64], *t;
|
||||||
|
|||||||
@@ -85,12 +85,6 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
#include "tokens.h"
|
#include "tokens.h"
|
||||||
#include "Versions.h"
|
#include "Versions.h"
|
||||||
|
|
||||||
int InitCPP(void);
|
|
||||||
int FinalCPP(void);
|
|
||||||
int readCPPline(yystypepp * yylvalpp);
|
|
||||||
int MacroExpand(int atom, yystypepp * yylvalpp);
|
|
||||||
int ChkCorrectElseNesting(void);
|
|
||||||
|
|
||||||
typedef struct MacroSymbol {
|
typedef struct MacroSymbol {
|
||||||
int argc;
|
int argc;
|
||||||
int *args;
|
int *args;
|
||||||
@@ -99,8 +93,14 @@ typedef struct MacroSymbol {
|
|||||||
unsigned undef:1;
|
unsigned undef:1;
|
||||||
} MacroSymbol;
|
} MacroSymbol;
|
||||||
|
|
||||||
void FreeMacro(MacroSymbol *);
|
int InitCPP(void);
|
||||||
int PredefineMacro(char *);
|
int FinalCPP(void);
|
||||||
|
int readCPPline(yystypepp * yylvalpp);
|
||||||
|
int MacroExpand(int atom, yystypepp * yylvalpp);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
void CPPDebugLogMsg(const char *msg); // Prints information into debug log
|
void CPPDebugLogMsg(const char *msg); // Prints information into debug log
|
||||||
void CPPShInfoLogMsg(const char*); // Store cpp Err Msg into Sh.Info.Log
|
void CPPShInfoLogMsg(const char*); // Store cpp Err Msg into Sh.Info.Log
|
||||||
@@ -118,4 +118,9 @@ void SetProfile(EProfile);
|
|||||||
void updateExtensionBehavior(const char* extName, const char* behavior);
|
void updateExtensionBehavior(const char* extName, const char* behavior);
|
||||||
int FreeCPP(void);
|
int FreeCPP(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif // !(defined(__CPP_H)
|
#endif // !(defined(__CPP_H)
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#ifdef __STDC99__
|
#ifdef _WIN32
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#elif defined (_WIN64)
|
#elif defined (_WIN64)
|
||||||
typedef unsigned __int64 uintptr_t;
|
typedef unsigned __int64 uintptr_t;
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ static void str_ungetch(StringInputSrc *in, int ch, yystypepp *type) {
|
|||||||
int ScanFromString(char *s)
|
int ScanFromString(char *s)
|
||||||
{
|
{
|
||||||
|
|
||||||
StringInputSrc *in = malloc(sizeof(StringInputSrc));
|
StringInputSrc *in = (StringInputSrc *)malloc(sizeof(StringInputSrc));
|
||||||
memset(in, 0, sizeof(StringInputSrc));
|
memset(in, 0, sizeof(StringInputSrc));
|
||||||
in->p = s;
|
in->p = s;
|
||||||
in->base.line = 1;
|
in->base.line = 1;
|
||||||
|
|||||||
@@ -87,6 +87,9 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
|
|
||||||
// Not really atom table stuff but needed first...
|
// Not really atom table stuff but needed first...
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct SourceLoc_Rec {
|
typedef struct SourceLoc_Rec {
|
||||||
unsigned short file, line;
|
unsigned short file, line;
|
||||||
@@ -114,5 +117,10 @@ void SetStringNumber(int);
|
|||||||
void IncLineNumber(void);
|
void IncLineNumber(void);
|
||||||
void DecLineNumber(void);
|
void DecLineNumber(void);
|
||||||
int FreeScanner(void); // Free the cpp scanner
|
int FreeScanner(void); // Free the cpp scanner
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif // !(defined(__SCANNER_H)
|
#endif // !(defined(__SCANNER_H)
|
||||||
|
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ Scope *CurrentScope = NULL;
|
|||||||
Scope *GlobalScope = NULL;
|
Scope *GlobalScope = NULL;
|
||||||
|
|
||||||
static void unlinkScope(void *_scope) {
|
static void unlinkScope(void *_scope) {
|
||||||
Scope *scope = _scope;
|
Scope *scope = (Scope*)_scope;
|
||||||
|
|
||||||
if (scope->next)
|
if (scope->next)
|
||||||
scope->next->prev = scope->prev;
|
scope->next->prev = scope->prev;
|
||||||
@@ -112,7 +112,7 @@ Scope *NewScopeInPool(MemoryPool *pool)
|
|||||||
{
|
{
|
||||||
Scope *lScope;
|
Scope *lScope;
|
||||||
|
|
||||||
lScope = mem_Alloc(pool, sizeof(Scope));
|
lScope = (Scope*)mem_Alloc(pool, sizeof(Scope));
|
||||||
lScope->pool = pool;
|
lScope->pool = pool;
|
||||||
lScope->parent = NULL;
|
lScope->parent = NULL;
|
||||||
lScope->funScope = NULL;
|
lScope->funScope = NULL;
|
||||||
|
|||||||
@@ -242,7 +242,7 @@ void DeleteTokenStream(TokenStream *pTok)
|
|||||||
void RecordToken(TokenStream *pTok, int token, yystypepp * yylvalpp)
|
void RecordToken(TokenStream *pTok, int token, yystypepp * yylvalpp)
|
||||||
{
|
{
|
||||||
const char *s;
|
const char *s;
|
||||||
unsigned char *str=NULL;
|
char *str = NULL;
|
||||||
|
|
||||||
if (token > 256)
|
if (token > 256)
|
||||||
lAddByte(pTok, (unsigned char)((token & 0x7f) + 0x80));
|
lAddByte(pTok, (unsigned char)((token & 0x7f) + 0x80));
|
||||||
@@ -262,7 +262,7 @@ void RecordToken(TokenStream *pTok, int token, yystypepp * yylvalpp)
|
|||||||
str = yylvalpp->symbol_name;
|
str = yylvalpp->symbol_name;
|
||||||
while (*str){
|
while (*str){
|
||||||
lAddByte(pTok, (unsigned char) *str);
|
lAddByte(pTok, (unsigned char) *str);
|
||||||
*str++;
|
str++;
|
||||||
}
|
}
|
||||||
lAddByte(pTok, 0);
|
lAddByte(pTok, 0);
|
||||||
break;
|
break;
|
||||||
@@ -398,7 +398,7 @@ static int scan_token(TokenInputSrc *in, yystypepp * yylvalpp)
|
|||||||
|
|
||||||
int ReadFromTokenStream(TokenStream *ts, int name, int (*final)(CPPStruct *))
|
int ReadFromTokenStream(TokenStream *ts, int name, int (*final)(CPPStruct *))
|
||||||
{
|
{
|
||||||
TokenInputSrc *in = malloc(sizeof(TokenInputSrc));
|
TokenInputSrc *in = (TokenInputSrc *) malloc(sizeof(TokenInputSrc));
|
||||||
memset(in, 0, sizeof(TokenInputSrc));
|
memset(in, 0, sizeof(TokenInputSrc));
|
||||||
in->base.name = name;
|
in->base.name = name;
|
||||||
in->base.prev = cpp->currentInput;
|
in->base.prev = cpp->currentInput;
|
||||||
@@ -426,12 +426,14 @@ static int reget_token(UngotToken *t, yystypepp * yylvalpp)
|
|||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef int (*scanFnPtr_t)(struct InputSrc *, yystypepp *);
|
||||||
|
|
||||||
void UngetToken(int token, yystypepp * yylvalpp) {
|
void UngetToken(int token, yystypepp * yylvalpp) {
|
||||||
UngotToken *t = malloc(sizeof(UngotToken));
|
UngotToken *t = (UngotToken *) malloc(sizeof(UngotToken));
|
||||||
memset(t, 0, sizeof(UngotToken));
|
memset(t, 0, sizeof(UngotToken));
|
||||||
t->token = token;
|
t->token = token;
|
||||||
t->lval = *yylvalpp;
|
t->lval = *yylvalpp;
|
||||||
t->base.scan = (void *)reget_token;
|
t->base.scan = (scanFnPtr_t)reget_token;
|
||||||
t->base.prev = cpp->currentInput;
|
t->base.prev = cpp->currentInput;
|
||||||
t->base.name = cpp->currentInput->name;
|
t->base.name = cpp->currentInput->name;
|
||||||
t->base.line = cpp->currentInput->line;
|
t->base.line = cpp->currentInput->line;
|
||||||
|
|||||||
@@ -9,12 +9,11 @@
|
|||||||
INCLUDE = -I. -I../.. -I../../Include -I../../../OGLCompilersDLL
|
INCLUDE = -I. -I../.. -I../../Include -I../../../OGLCompilersDLL
|
||||||
WARNINGS = -Wall -Wwrite-strings -Wpointer-arith -Wcast-align -Wstrict-prototypes \
|
WARNINGS = -Wall -Wwrite-strings -Wpointer-arith -Wcast-align -Wstrict-prototypes \
|
||||||
-Wnested-externs
|
-Wnested-externs
|
||||||
DEFINE = -Dlinux -D__i386__
|
|
||||||
|
|
||||||
CPP = g++
|
CPP = g++
|
||||||
CPPOPTIONS = -O3 -Wno-deprecated -D_ALT_NS=1
|
CPPOPTIONS = -O3 -Wno-deprecated -D_ALT_NS=1 -fPIC
|
||||||
CPPOPTIONS = -g -Wno-deprecated -D_ALT_NS=1
|
CPPOPTIONS = -g -Wno-deprecated -D_ALT_NS=1 -fPIC
|
||||||
CPPFLAGS = $(CPPOPTIONS) $(DEFINE) $(INCLUDE)
|
CPPFLAGS = $(CPPOPTIONS) $(INCLUDE)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Linking related
|
# Linking related
|
||||||
|
|||||||
Reference in New Issue
Block a user