mirror of
https://github.com/KhronosGroup/glslang
synced 2024-09-18 19:59:54 +00:00
PP: #include: add names to error messages, so that lexical analysis can be tested.
This commit is contained in:
parent
64285c9e69
commit
28d3133581
@ -3,11 +3,11 @@ ERROR: 0:8000: '#include' : must be followed by a header name
|
||||
ERROR: 0:8001: '#include' : required extension not requested: GL_GOOGLE_include_directive
|
||||
ERROR: 0:8001: '#include' : must be followed by a header name
|
||||
ERROR: 0:8002: '#include' : required extension not requested: GL_GOOGLE_include_directive
|
||||
ERROR: 0:8002: '#include' : unexpected include directive
|
||||
ERROR: 0:8002: '#include' : unexpected include directive for header name: foo
|
||||
ERROR: 0:8003: '#include' : required extension not requested: GL_GOOGLE_include_directive
|
||||
ERROR: 0:8003: '#include' : extra content after header name
|
||||
ERROR: 0:8003: '#include' : extra content after header name: foo
|
||||
ERROR: 0:8004: '#include' : required extension not requested: GL_GOOGLE_include_directive
|
||||
ERROR: 0:8004: '#include' : expected newline
|
||||
ERROR: 0:8004: '#include' : expected newline after header name: no-eol
|
||||
ERROR: 10 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
@ -1,13 +1,20 @@
|
||||
ERROR: 0:8000: '#include' : must be followed by a header name
|
||||
ERROR: 0:8001: '#include' : must be followed by a header name
|
||||
ERROR: 0:8002: '#include' : unexpected include directive
|
||||
ERROR: 0:8003: '#include' : unexpected include directive
|
||||
ERROR: 0:8004: '#include' : extra content after header name
|
||||
ERROR: 0:8005: '#include' : extra content after header name
|
||||
ERROR: 0:8007: '#include' : unexpected include directive
|
||||
ERROR: 0:8009: '' : header name too long
|
||||
ERROR: 0:8009: '#include' : unexpected include directive
|
||||
ERROR: 0:8010: '#include' : expected newline
|
||||
ERROR: 10 compilation errors. No code generated.
|
||||
ERROR: 0:8002: '#include' : unexpected include directive for header name: foo.oeu
|
||||
ERROR: 0:8003: '#include' : unexpected include directive for header name: foo.oeu/ao eu/ao.h
|
||||
ERROR: 0:8004: '#include' : unexpected include directive for header name: foo<oeu
|
||||
ERROR: 0:8005: '#include' : unexpected include directive for header name: foo.oe>
|
||||
ERROR: 0:8006: '#include' : unexpected include directive for header name: foo.oe
|
||||
ERROR: 0:8007: '#include' : unexpected include directive for header name: foo"bar"
|
||||
ERROR: 0:8008: '#include' : unexpected include directive for header name: foo\bar
|
||||
ERROR: 0:8009: '#include' : unexpected include directive for header name: foo.oe>
|
||||
ERROR: 0:8010: '#include' : unexpected include directive for header name: foo
|
||||
ERROR: 0:8011: '#include' : extra content after header name: foo2.h
|
||||
ERROR: 0:8012: '#include' : extra content after header name: foo.h
|
||||
ERROR: 0:8014: '#include' : unexpected include directive for header name: ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789
|
||||
ERROR: 0:8016: '' : header name too long
|
||||
ERROR: 0:8016: '#include' : unexpected include directive for header name: ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789
|
||||
ERROR: 0:8017: '#include' : expected newline after header name: no-eol
|
||||
ERROR: 17 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
@ -2,10 +2,17 @@
|
||||
#line 8000
|
||||
#include
|
||||
#include 123
|
||||
#include "foo"
|
||||
#include "foo.oeu"
|
||||
#include "foo.oeu/ao eu/ao.h"
|
||||
#include "foo<oeu"
|
||||
#include "foo.oe>"
|
||||
#include <foo.oe>
|
||||
#include <foo"bar">
|
||||
#include <foo\bar>
|
||||
#include "foo.oe>"
|
||||
#include <foo>
|
||||
#include "foo" garbage
|
||||
#include <foo> garbage
|
||||
#include "foo2.h" garbage
|
||||
#include <foo.h> garbage
|
||||
// max length
|
||||
#include <ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789>
|
||||
// too long
|
||||
|
@ -2,5 +2,5 @@
|
||||
// For the version, it uses the latest git tag followed by the number of commits.
|
||||
// For the date, it uses the current date (when then script is run).
|
||||
|
||||
#define GLSLANG_REVISION "Overload400-PrecQual.1742"
|
||||
#define GLSLANG_REVISION "Overload400-PrecQual.1744"
|
||||
#define GLSLANG_DATE "05-Jan-2017"
|
||||
|
@ -596,9 +596,9 @@ int TPpContext::CPPinclude(TPpToken* ppToken)
|
||||
token = scanToken(ppToken);
|
||||
if (token != '\n') {
|
||||
if (token == EndOfInput)
|
||||
parseContext.ppError(ppToken->loc, "expected newline", "#include", "");
|
||||
parseContext.ppError(ppToken->loc, "expected newline after header name:", "#include", "%s", filename.c_str());
|
||||
else
|
||||
parseContext.ppError(ppToken->loc, "extra content after header name", "#include", "");
|
||||
parseContext.ppError(ppToken->loc, "extra content after header name:", "#include", "%s", filename.c_str());
|
||||
} else {
|
||||
TShader::Includer::IncludeResult* res = includer.include(filename.c_str(), includeType, currentSourceFile.c_str(), includeStack.size() + 1);
|
||||
if (res && !res->file_name.empty()) {
|
||||
@ -619,7 +619,7 @@ int TPpContext::CPPinclude(TPpToken* ppToken)
|
||||
std::string message =
|
||||
res ? std::string(res->file_data, res->file_length)
|
||||
: std::string("Could not process include directive");
|
||||
parseContext.ppError(directiveLoc, message.c_str(), "#include", "");
|
||||
parseContext.ppError(directiveLoc, message.c_str(), "#include", "for header name: %s", filename.c_str());
|
||||
if (res) {
|
||||
includer.releaseInclude(res);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user