John Kessenich
b2395e9ddf
HLSL: Fix #1655 ; use "" for nullptr file names. Needs test cases.
2019-01-16 16:07:51 +07:00
Greg Fischer
d445bb2867
Create separate OpSource for each included file
2018-12-28 12:06:43 -07:00
John Kessenich
b23d232ec5
Licensing. Fixes #958 . Add licenes file and update copyrights.
2018-12-14 10:47:35 -07:00
John Kessenich
30b697ee63
Build: Reduce warnings.
2018-12-13 18:43:02 -07:00
Rémi Verschelde
ebfd91a719
Remove Unix executable permission from text files
2018-12-10 10:49:16 +01:00
greg-lunarg
5d43c4aac7
SPV: Fix #1575 , fix #1593 : Support HLSL #line
...
SPIR-V OpLines now contain filenames from HLSL-style #lines.
2018-12-07 17:36:33 -07:00
Alexander Galazin
32def9f467
Rename GL_KHX_shader_explicit_arithmetic_types to GL_EXT_shader_explicit_arithmetic_types
2018-12-03 13:16:59 +01:00
John Kessenich
4207c97b93
Fix #1563 : Corrupt token when an object macro miscalls a function macro
2018-11-07 18:25:56 -07:00
John Kessenich
4ee2f75294
PP: More clearly distinguish funtion-like and object-like macros
2018-11-07 17:22:17 -07:00
otakuto
d03da06ac1
Remove execute permissions
2018-08-07 03:16:20 +09:00
John Kessenich
7cdc24c06c
PP: Address #1456 : Strip float suffixes before using platform library.
2018-07-27 13:08:05 -06:00
John Kessenich
561a43d272
PP: floating-point parsing: more stable handling of istringstream::fail
...
Possibly addresses #1456
2018-07-26 14:29:29 -06:00
John Kessenich
802c62bca4
PP: Rationalize return values of MacroExpand.
...
This results in better error recovery, including fewer
crashes on badly formed PP input.
2018-07-02 13:47:31 -06:00
John Kessenich
9cc81de096
PP/HLSL: Fix #1424 : support comma in nested curly braces for macro arg
2018-07-02 10:40:32 -06:00
John Kessenich
866f67140e
Build: Make literal casting have fewer warnings and be more consistent.
2018-06-20 18:10:55 -06:00
LoopDawg
470a68cfd4
Fix several signed/unsigned comparison compile warnings.
2018-06-01 20:23:50 -06:00
John Kessenich
3e8e9f7bbd
PP: Implement locale-independent strtod, using istringstream and a fast path.
...
Fixes #1228 . Fixes #234 .
This uses imbue() to be locale independent. Notes:
- 'sstream >> double' is much slower than strtod()
* this was measurable in the test suite as a whole, despite being
a tiny fraction of what the test suite does
- so, this embeds a fast path that bypasses sstream most of the time
=> the test suite is faster than before
- sstream is probably slower, because it does more accurate rounding than strtod()
- sstream does not create INFINITY by itself, this was done based on failure inferencing
2018-05-24 22:08:30 -06:00
John Kessenich
6c52f8968c
PP: Remove second parsing of numbers recorded in macros; save/use original.
...
This partly addresses #1228 and #234 by reducing usage of strtod (or atof).
There is now only place to parse a floating-point number.
2018-05-24 18:24:06 -06:00
John Kessenich
e7e081bda9
PP: don't give errors on some tokens under #if 0 (or similar).
...
Fixes #1295 .
Tokens that are accepted by any version of HLSL or GLSL should be
allowed when #ifdef'd off, such that errors are not reported.
2018-03-19 00:43:18 -06:00
Rex Xu
a00e51b5b2
HLSL: Correct some mistakes for min16 types
...
- Add missing constructor ops to support float16/int16/uint16 types
- Allow half float literals
- Correct two errors of double literal parse in HLSL: extension check and
postfix
2018-03-12 23:15:11 +08:00
John Kessenich
66011cb2c2
SPV: Implement Vulkan 1.1 features and extensions.
2018-03-06 16:12:04 -07:00
John Kessenich
9c6f8cc29b
Scanner: Many int16 and float16 fixes, including performance.
...
- fixes #1209 , addresses most of #1187
- only query feature availability on seeing the feature
(was doing it for every single token)
- correct case-sensitive checks for multi-character suffixes
2018-01-08 15:59:29 -07:00
John Kessenich
c043aadd25
Scanner: Many int64 fixes, including performance.
...
- partially addresses #1209 and #1187
- only query 64-bit extension on seeing use of a 64-bit literal
(was doing it for every single token)
- correct HLSL acceptance of 64-bit literal syntax (still an int though)
- error on overflow of 32-bit literal type
2018-01-08 11:52:23 -07:00
John Kessenich
88e22a6090
Fix #1079 : don't give error when macro() name used without open (.
2017-11-02 06:48:32 -06:00
Aaron Muir Hamilton
9d4a1b24e9
Preprocessor: Evaluate INT_MIN % -1 to 0.
2017-10-24 10:59:01 +00:00
John Kessenich
016e47f7a3
Merge branch 'only-parse-inf-constant-in-hlsl' of https://github.com/xorgy/glslang into xorgy-only-parse-inf-constant-in-hlsl
2017-10-22 23:20:42 -06:00
Aaron Muir Hamilton
6031266244
GLSL: Only parse [-]1.#INF in HLSL mode.
2017-10-23 02:56:27 +00:00
Aaron Muir Hamilton
9028ed204d
Check for hexadecimal literals exceeding MaxTokenLength.
2017-10-22 17:55:14 +00:00
Aaron Muir Hamilton
dc756a61c8
Preprocessor: Evaluate INT_MIN / -1 to 0.
...
This division is undefined behaviour which raises SIGFPE on x86.
Most C++ preprocessors evaluate this silently to 0.
2017-10-18 19:56:19 +00:00
John Kessenich
7d67c6cbc2
PP: Fix #1104 : Missing check for #if overflow.
...
Also, rationalized this to generally make it safer and more readable.
It could use a more modern approach, at some point...
2017-10-16 15:29:07 -06:00
xavier
eb71cdd5bb
HLSL: fix preprocessor concatenation behaviour.
...
Fix #772 .
2017-08-29 00:35:01 +02:00
Rex Xu
cabbb788b4
Implement extension GL_AMD_gpu_shader_int16
...
- Add int16 types (int16_t, uint16_t, i16vec, u16vec).
- Add int16 support to GLSL operators.
- Add int16 type conversions (to int16, from int16).
- Add int16 built-in functions.
2017-06-09 17:11:23 +08:00
John Kessenich
4d5bcd3162
HLSL: Allow macro expansions to create the 'defined' operator.
2017-06-08 17:12:56 -06:00
John Kessenich
2eb135506a
GLSL: Fix #396 : Error when 'defined' comes from macro expansion.
2017-06-07 17:19:08 -06:00
John Kessenich
99f289d438
Merge pull request #899 from antiagainst/rm-empty-cpps
...
Remove empty cpp files
2017-06-03 15:29:06 -06:00
John Kessenich
3494b4da9b
HLSL: Add an Includer to handle #include.
2017-06-01 11:16:32 -06:00
Lei Zhang
ddda9cb8ee
Remove empty cpp files
...
This solves ranlib warnings on MacOS.
2017-05-19 17:29:16 -04:00
Aras Pranckevicius
8e204b2d67
[lumped builds] Only define _CRT_SECURE_NO_WARNINGS if it’s not defined yet.
...
When glslang is built with some other build system and lumped/unity builds are used,
without the checks this would get “macro is being redefined” warnings/errors.
2017-05-10 16:52:50 +03:00
John Kessenich
a4c64c988c
HLSL: Fix #834 : Report #version is an illegal command.
2017-04-12 17:24:34 -06:00
John Kessenich
a0c578a6df
HLSL: Fix #758 : Support character literals (except for numeric escape sequences).
2017-04-12 16:58:30 -06:00
John Kessenich
776c515ea5
HLSL: Support 1.#INF and -1.#INF syntax.
2017-04-12 13:40:53 -06:00
John Kessenich
97cb85c7d6
PP: Fix #783 : Catch end-of-argument expansion in token pasting.
2017-04-04 12:28:20 -06:00
John Kessenich
523e20dc02
PP: Recognize the '::' token, and translate appropriately to GLSL/HLSL token.
2017-03-10 18:03:43 -07:00
Daniel Koch
197082ca34
Fix build warnings on some platforms
...
Use an explicit cast from size_t to int to avoid errors like the following:
glslang\glslang\MachineIndependent\preprocessor\Pp.cpp(1053) : error C2220: warning treated as error - no 'object' file generated
glslang\glslang\MachineIndependent\preprocessor\Pp.cpp(1053) : warning C4267: '=' : conversion from 'size_t' to 'int', possible loss of data
affects Pp.cpp, hlslParseHelper.cpp.
Initialize local variable to get rid of warningsa about potentially
uninitialized variables:
glslang\hlsl\hlslparsehelper.cpp(3667) : error C2220: warning treated as error - no 'object' file generated
glslang\hlsl\hlslparsehelper.cpp(3667) : warning C4701: potentially uninitialized local variable 'builtIn' used
affects hlslParseHelper.cpp
2017-03-01 09:50:42 -05:00
John Kessenich
3494d71cfa
PP: Fix issue #738 : don't assert on characters within a string.
2017-02-28 19:39:51 -07:00
John Kessenich
fb22b69fc6
PP: Partially address issue #738 : handle premature end of argument when token pasting.
2017-02-28 18:06:39 -07:00
John Kessenich
b67b4a7072
PP: Address #737 : accept 'h'/'H' floating-point suffix more broadly.
2017-02-28 12:58:11 -07:00
John Kessenich
9a2733a978
PP, nonfunctional: Properly encapsulate a TokenStream.
2017-02-10 18:03:01 -07:00
John Kessenich
b49bb2ca5c
PP, nonfunctional: Remove crufty bit-twiddling of tokens.
2017-02-10 13:03:40 -07:00
John Kessenich
8e711b84bd
Fix issue #708 : token pasting within macro argument expansion.
2017-02-10 10:07:03 -07:00