Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
461ea099
Commit
461ea099
authored
Apr 11, 2018
by
John Kessenich
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Non-functional: Fix tabs.
parent
e891afac
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
308 additions
and
308 deletions
+308
-308
Common.h
glslang/Include/Common.h
+13
-13
revision.h
glslang/Include/revision.h
+1
-1
Versions.cpp
glslang/MachineIndependent/Versions.cpp
+4
-4
glslang.y
glslang/MachineIndependent/glslang.y
+144
-144
glslang_tab.cpp
glslang/MachineIndependent/glslang_tab.cpp
+144
-144
ShaderLang.h
glslang/Public/ShaderLang.h
+1
-1
hlslParseHelper.cpp
hlsl/hlslParseHelper.cpp
+1
-1
No files found.
glslang/Include/Common.h
View file @
461ea099
...
...
@@ -67,19 +67,19 @@ std::string to_string(const T& val) {
#endif
#if defined(_MSC_VER) && _MSC_VER < 1800
#include <stdlib.h>
inline
long
long
int
strtoll
(
const
char
*
str
,
char
**
endptr
,
int
base
)
{
return
_strtoi64
(
str
,
endptr
,
base
);
}
inline
unsigned
long
long
int
strtoull
(
const
char
*
str
,
char
**
endptr
,
int
base
)
{
return
_strtoui64
(
str
,
endptr
,
base
);
}
inline
long
long
int
atoll
(
const
char
*
str
)
{
return
strtoll
(
str
,
NULL
,
10
);
}
#include <stdlib.h>
inline
long
long
int
strtoll
(
const
char
*
str
,
char
**
endptr
,
int
base
)
{
return
_strtoi64
(
str
,
endptr
,
base
);
}
inline
unsigned
long
long
int
strtoull
(
const
char
*
str
,
char
**
endptr
,
int
base
)
{
return
_strtoui64
(
str
,
endptr
,
base
);
}
inline
long
long
int
atoll
(
const
char
*
str
)
{
return
strtoll
(
str
,
NULL
,
10
);
}
#endif
#if defined(_MSC_VER)
...
...
glslang/Include/revision.h
View file @
461ea099
// This header is generated by the make-revision script.
#define GLSLANG_PATCH_LEVEL 26
89
#define GLSLANG_PATCH_LEVEL 26
91
glslang/MachineIndependent/Versions.cpp
View file @
461ea099
...
...
@@ -892,12 +892,12 @@ void TParseVersions::explicitInt16Check(const TSourceLoc& loc, const char* op, b
{
if
(
!
builtIn
)
{
#if AMD_EXTENSIONS
const
char
*
const
extensions
[
3
]
=
{
E_GL_AMD_gpu_shader_int16
,
E_GL_KHX_shader_explicit_arithmetic_types
,
E_GL_KHX_shader_explicit_arithmetic_types_int16
};
const
char
*
const
extensions
[
3
]
=
{
E_GL_AMD_gpu_shader_int16
,
E_GL_KHX_shader_explicit_arithmetic_types
,
E_GL_KHX_shader_explicit_arithmetic_types_int16
};
#else
const
char
*
const
extensions
[
2
]
=
{
E_GL_KHX_shader_explicit_arithmetic_types
,
E_GL_KHX_shader_explicit_arithmetic_types_int16
};
E_GL_KHX_shader_explicit_arithmetic_types_int16
};
#endif
requireExtensions
(
loc
,
sizeof
(
extensions
)
/
sizeof
(
extensions
[
0
]),
extensions
,
"explicit types"
);
requireProfile
(
loc
,
ECoreProfile
|
ECompatibilityProfile
,
op
);
...
...
glslang/MachineIndependent/glslang.y
View file @
461ea099
...
...
@@ -1538,40 +1538,40 @@ type_specifier_nonarray
$$.setVector(4);
}
| F32VEC2 {
parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setVector(2);
parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setVector(2);
}
| F32VEC3 {
parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setVector(3);
parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setVector(3);
}
| F32VEC4 {
parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setVector(4);
parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setVector(4);
}
| F64VEC2 {
parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setVector(2);
parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setVector(2);
}
| F64VEC3 {
parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setVector(3);
parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setVector(3);
}
| F64VEC4 {
parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setVector(4);
parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setVector(4);
}
| BVEC2 {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
...
...
@@ -1604,40 +1604,40 @@ type_specifier_nonarray
$$.setVector(4);
}
| I8VEC2 {
parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtInt8;
$$.setVector(2);
parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtInt8;
$$.setVector(2);
}
| I8VEC3 {
parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtInt8;
$$.setVector(3);
parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtInt8;
$$.setVector(3);
}
| I8VEC4 {
parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtInt8;
$$.setVector(4);
parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtInt8;
$$.setVector(4);
}
| I16VEC2 {
parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtInt16;
$$.setVector(2);
parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtInt16;
$$.setVector(2);
}
| I16VEC3 {
parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtInt16;
$$.setVector(3);
parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtInt16;
$$.setVector(3);
}
| I16VEC4 {
parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtInt16;
$$.setVector(4);
parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtInt16;
$$.setVector(4);
}
| I32VEC2 {
parseContext.explicitInt32Check($1.loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
...
...
@@ -1970,148 +1970,148 @@ type_specifier_nonarray
$$.setMatrix(4, 4);
}
| F32MAT2 {
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(2, 2);
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(2, 2);
}
| F32MAT3 {
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(3, 3);
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(3, 3);
}
| F32MAT4 {
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(4, 4);
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(4, 4);
}
| F32MAT2X2 {
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(2, 2);
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(2, 2);
}
| F32MAT2X3 {
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(2, 3);
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(2, 3);
}
| F32MAT2X4 {
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(2, 4);
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(2, 4);
}
| F32MAT3X2 {
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(3, 2);
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(3, 2);
}
| F32MAT3X3 {
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(3, 3);
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(3, 3);
}
| F32MAT3X4 {
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(3, 4);
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(3, 4);
}
| F32MAT4X2 {
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(4, 2);
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(4, 2);
}
| F32MAT4X3 {
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(4, 3);
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(4, 3);
}
| F32MAT4X4 {
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(4, 4);
parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtFloat;
$$.setMatrix(4, 4);
}
| F64MAT2 {
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 2);
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 2);
}
| F64MAT3 {
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 3);
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 3);
}
| F64MAT4 {
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 4);
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 4);
}
| F64MAT2X2 {
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 2);
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 2);
}
| F64MAT2X3 {
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 3);
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 3);
}
| F64MAT2X4 {
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 4);
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 4);
}
| F64MAT3X2 {
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 2);
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 2);
}
| F64MAT3X3 {
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 3);
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 3);
}
| F64MAT3X4 {
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 4);
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 4);
}
| F64MAT4X2 {
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 2);
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 2);
}
| F64MAT4X3 {
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 3);
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 3);
}
| F64MAT4X4 {
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 4);
parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 4);
}
| ATOMIC_UINT {
parseContext.vulkanRemoved($1.loc, "atomic counter types");
...
...
glslang/MachineIndependent/glslang_tab.cpp
View file @
461ea099
...
...
@@ -6102,10 +6102,10 @@ yyreduce:
case
206
:
#line 1540 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setVector
(
2
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setVector
(
2
);
}
#line 6111 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6113,10 +6113,10 @@ yyreduce:
case
207
:
#line 1546 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setVector
(
3
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setVector
(
3
);
}
#line 6122 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6124,10 +6124,10 @@ yyreduce:
case
208
:
#line 1552 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setVector
(
4
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setVector
(
4
);
}
#line 6133 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6135,10 +6135,10 @@ yyreduce:
case
209
:
#line 1558 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setVector
(
2
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setVector
(
2
);
}
#line 6144 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6146,10 +6146,10 @@ yyreduce:
case
210
:
#line 1564 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setVector
(
3
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setVector
(
3
);
}
#line 6155 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6157,10 +6157,10 @@ yyreduce:
case
211
:
#line 1570 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setVector
(
4
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setVector
(
4
);
}
#line 6166 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6228,10 +6228,10 @@ yyreduce:
case
218
:
#line 1606 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitInt8Check
((
yyvsp
[
0
].
lex
).
loc
,
"8-bit signed integer vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtInt8
;
(
yyval
.
interm
.
type
).
setVector
(
2
);
parseContext
.
explicitInt8Check
((
yyvsp
[
0
].
lex
).
loc
,
"8-bit signed integer vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtInt8
;
(
yyval
.
interm
.
type
).
setVector
(
2
);
}
#line 6237 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6239,10 +6239,10 @@ yyreduce:
case
219
:
#line 1612 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitInt8Check
((
yyvsp
[
0
].
lex
).
loc
,
"8-bit signed integer vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtInt8
;
(
yyval
.
interm
.
type
).
setVector
(
3
);
parseContext
.
explicitInt8Check
((
yyvsp
[
0
].
lex
).
loc
,
"8-bit signed integer vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtInt8
;
(
yyval
.
interm
.
type
).
setVector
(
3
);
}
#line 6248 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6250,10 +6250,10 @@ yyreduce:
case
220
:
#line 1618 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitInt8Check
((
yyvsp
[
0
].
lex
).
loc
,
"8-bit signed integer vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtInt8
;
(
yyval
.
interm
.
type
).
setVector
(
4
);
parseContext
.
explicitInt8Check
((
yyvsp
[
0
].
lex
).
loc
,
"8-bit signed integer vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtInt8
;
(
yyval
.
interm
.
type
).
setVector
(
4
);
}
#line 6259 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6261,10 +6261,10 @@ yyreduce:
case
221
:
#line 1624 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitInt16Check
((
yyvsp
[
0
].
lex
).
loc
,
"16-bit signed integer vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtInt16
;
(
yyval
.
interm
.
type
).
setVector
(
2
);
parseContext
.
explicitInt16Check
((
yyvsp
[
0
].
lex
).
loc
,
"16-bit signed integer vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtInt16
;
(
yyval
.
interm
.
type
).
setVector
(
2
);
}
#line 6270 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6272,10 +6272,10 @@ yyreduce:
case
222
:
#line 1630 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitInt16Check
((
yyvsp
[
0
].
lex
).
loc
,
"16-bit signed integer vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtInt16
;
(
yyval
.
interm
.
type
).
setVector
(
3
);
parseContext
.
explicitInt16Check
((
yyvsp
[
0
].
lex
).
loc
,
"16-bit signed integer vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtInt16
;
(
yyval
.
interm
.
type
).
setVector
(
3
);
}
#line 6281 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6283,10 +6283,10 @@ yyreduce:
case
223
:
#line 1636 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitInt16Check
((
yyvsp
[
0
].
lex
).
loc
,
"16-bit signed integer vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtInt16
;
(
yyval
.
interm
.
type
).
setVector
(
4
);
parseContext
.
explicitInt16Check
((
yyvsp
[
0
].
lex
).
loc
,
"16-bit signed integer vector"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtInt16
;
(
yyval
.
interm
.
type
).
setVector
(
4
);
}
#line 6292 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6909,10 +6909,10 @@ yyreduce:
case
281
:
#line 1972 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
2
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
2
);
}
#line 6918 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6920,10 +6920,10 @@ yyreduce:
case
282
:
#line 1978 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
3
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
3
);
}
#line 6929 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6931,10 +6931,10 @@ yyreduce:
case
283
:
#line 1984 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
4
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
4
);
}
#line 6940 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6942,10 +6942,10 @@ yyreduce:
case
284
:
#line 1990 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
2
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
2
);
}
#line 6951 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6953,10 +6953,10 @@ yyreduce:
case
285
:
#line 1996 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
3
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
3
);
}
#line 6962 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6964,10 +6964,10 @@ yyreduce:
case
286
:
#line 2002 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
4
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
4
);
}
#line 6973 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6975,10 +6975,10 @@ yyreduce:
case
287
:
#line 2008 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
2
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
2
);
}
#line 6984 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6986,10 +6986,10 @@ yyreduce:
case
288
:
#line 2014 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
3
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
3
);
}
#line 6995 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -6997,10 +6997,10 @@ yyreduce:
case
289
:
#line 2020 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
4
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
4
);
}
#line 7006 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7008,10 +7008,10 @@ yyreduce:
case
290
:
#line 2026 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
2
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
2
);
}
#line 7017 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7019,10 +7019,10 @@ yyreduce:
case
291
:
#line 2032 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
3
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
3
);
}
#line 7028 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7030,10 +7030,10 @@ yyreduce:
case
292
:
#line 2038 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
4
);
parseContext
.
explicitFloat32Check
((
yyvsp
[
0
].
lex
).
loc
,
"float32_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtFloat
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
4
);
}
#line 7039 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7041,10 +7041,10 @@ yyreduce:
case
293
:
#line 2044 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
2
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
2
);
}
#line 7050 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7052,10 +7052,10 @@ yyreduce:
case
294
:
#line 2050 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
3
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
3
);
}
#line 7061 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7063,10 +7063,10 @@ yyreduce:
case
295
:
#line 2056 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
4
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
4
);
}
#line 7072 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7074,10 +7074,10 @@ yyreduce:
case
296
:
#line 2062 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
2
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
2
);
}
#line 7083 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7085,10 +7085,10 @@ yyreduce:
case
297
:
#line 2068 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
3
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
3
);
}
#line 7094 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7096,10 +7096,10 @@ yyreduce:
case
298
:
#line 2074 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
4
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
2
,
4
);
}
#line 7105 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7107,10 +7107,10 @@ yyreduce:
case
299
:
#line 2080 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
2
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
2
);
}
#line 7116 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7118,10 +7118,10 @@ yyreduce:
case
300
:
#line 2086 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
3
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
3
);
}
#line 7127 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7129,10 +7129,10 @@ yyreduce:
case
301
:
#line 2092 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
4
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
3
,
4
);
}
#line 7138 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7140,10 +7140,10 @@ yyreduce:
case
302
:
#line 2098 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
2
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
2
);
}
#line 7149 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7151,10 +7151,10 @@ yyreduce:
case
303
:
#line 2104 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
3
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
3
);
}
#line 7160 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
@@ -7162,10 +7162,10 @@ yyreduce:
case
304
:
#line 2110 "MachineIndependent/glslang.y"
/* yacc.c:1646 */
{
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
4
);
parseContext
.
explicitFloat64Check
((
yyvsp
[
0
].
lex
).
loc
,
"float64_t matrix"
,
parseContext
.
symbolTable
.
atBuiltInLevel
());
(
yyval
.
interm
.
type
).
init
((
yyvsp
[
0
].
lex
).
loc
,
parseContext
.
symbolTable
.
atGlobalLevel
());
(
yyval
.
interm
.
type
).
basicType
=
EbtDouble
;
(
yyval
.
interm
.
type
).
setMatrix
(
4
,
4
);
}
#line 7171 "MachineIndependent/glslang_tab.cpp"
/* yacc.c:1646 */
break
;
...
...
glslang/Public/ShaderLang.h
View file @
461ea099
...
...
@@ -671,7 +671,7 @@ public:
int
getUniformBlockSize
(
int
blockIndex
)
const
;
// can be used for glGetActiveUniformBlockiv(UNIFORM_BLOCK_DATA_SIZE)
int
getUniformIndex
(
const
char
*
name
)
const
;
// can be used for glGetUniformIndices()
int
getUniformBinding
(
int
index
)
const
;
// returns the binding number
int
getUniformBlockBinding
(
int
index
)
const
;
// returns the block binding number
int
getUniformBlockBinding
(
int
index
)
const
;
// returns the block binding number
int
getUniformBlockIndex
(
int
index
)
const
;
// can be used for glGetActiveUniformsiv(GL_UNIFORM_BLOCK_INDEX)
int
getUniformBlockCounterIndex
(
int
index
)
const
;
// returns block index of associated counter.
int
getUniformType
(
int
index
)
const
;
// can be used for glGetActiveUniformsiv(GL_UNIFORM_TYPE)
...
...
hlsl/hlslParseHelper.cpp
View file @
461ea099
...
...
@@ -8629,7 +8629,7 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS
return
;
}
// Save it in the AST for linker use.
// Save it in the AST for linker use.
if
(
symbolTable
.
atGlobalLevel
())
trackLinkage
(
variable
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment