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:
John Kessenich
2013-03-08 23:14:42 +00:00
parent 37827023c4
commit cfd643e447
25 changed files with 131 additions and 44 deletions

View File

@@ -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

View File

@@ -17,7 +17,7 @@ SHAREDOBJECT:
cd $(OBJECTPATH); make all cd $(OBJECTPATH); make all
%.o : %.cpp %.o : %.cpp
$(CC) -c $< $(CC) -g -c $<
# #
# Cleanup # Cleanup

View File

@@ -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) {

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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];

View File

@@ -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;
} }

View File

@@ -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;

View File

@@ -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

View File

@@ -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;

View File

@@ -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"

View File

@@ -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:

View File

@@ -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
} }
} }

View File

@@ -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;

View File

@@ -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();

View File

@@ -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

View File

@@ -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;

View File

@@ -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)

View File

@@ -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;

View File

@@ -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;

View File

@@ -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)

View File

@@ -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;

View File

@@ -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));
@@ -259,10 +259,10 @@ void RecordToken(TokenStream *pTok, int token, yystypepp * yylvalpp)
break; break;
case CPP_FLOATCONSTANT: case CPP_FLOATCONSTANT:
case CPP_INTCONSTANT: case CPP_INTCONSTANT:
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;

View File

@@ -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