FYI, move builtin check to type symbol check.
Avoid modifying interface doubleCheck().
}
// Call for any operation needing GLSL double data-type support.
-void TParseVersions::doubleCheck(const TSourceLoc& loc, const char* op, bool builtIn)
+void TParseVersions::doubleCheck(const TSourceLoc& loc, const char* op)
{
- requireProfile(loc, ECoreProfile | ECompatibilityProfile, op);
- if (!builtIn)
- profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader_fp64, op);
+ //requireProfile(loc, ECoreProfile | ECompatibilityProfile, op);
+ profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader_fp64, op);
}
// Call for any operation needing GLSL float16 data-type support.
$$ = parseContext.intermediate.addConstantUnion((unsigned short)$1.u, $1.loc, true);
}
| DOUBLECONSTANT {
- parseContext.doubleCheck($1.loc, "double literal");
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double literal");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double literal");
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtDouble, $1.loc, true);
}
| FLOAT16CONSTANT {
}
GLSLANG_WEB_EXCLUDE_ON
| DOUBLE {
- parseContext.doubleCheck($1.loc, "double", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
}
$$.basicType = EbtUint64;
}
| DVEC2 {
- parseContext.doubleCheck($1.loc, "double vector", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double vector");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setVector(2);
}
| DVEC3 {
- parseContext.doubleCheck($1.loc, "double vector", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double vector");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setVector(3);
}
| DVEC4 {
- parseContext.doubleCheck($1.loc, "double vector", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double vector");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setVector(4);
$$.setVector(4);
}
| DMAT2 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 2);
}
| DMAT3 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 3);
}
| DMAT4 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 4);
}
| DMAT2X2 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 2);
}
| DMAT2X3 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 3);
}
| DMAT2X4 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 4);
}
| DMAT3X2 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 2);
}
| DMAT3X3 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 3);
}
| DMAT3X4 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 4);
}
| DMAT4X2 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 2);
}
| DMAT4X3 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 3);
}
| DMAT4X4 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 4);
$$ = parseContext.intermediate.addConstantUnion((unsigned short)$1.u, $1.loc, true);
}
| DOUBLECONSTANT {
- parseContext.doubleCheck($1.loc, "double literal");
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double literal");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double literal");
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtDouble, $1.loc, true);
}
| FLOAT16CONSTANT {
}
| DOUBLE {
- parseContext.doubleCheck($1.loc, "double", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
}
$$.basicType = EbtUint64;
}
| DVEC2 {
- parseContext.doubleCheck($1.loc, "double vector", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double vector");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setVector(2);
}
| DVEC3 {
- parseContext.doubleCheck($1.loc, "double vector", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double vector");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setVector(3);
}
| DVEC4 {
- parseContext.doubleCheck($1.loc, "double vector", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double vector");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setVector(4);
$$.setVector(4);
}
| DMAT2 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 2);
}
| DMAT3 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 3);
}
| DMAT4 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 4);
}
| DMAT2X2 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 2);
}
| DMAT2X3 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 3);
}
| DMAT2X4 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(2, 4);
}
| DMAT3X2 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 2);
}
| DMAT3X3 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 3);
}
| DMAT3X4 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(3, 4);
}
| DMAT4X2 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 2);
}
| DMAT4X3 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 3);
}
| DMAT4X4 {
- parseContext.doubleCheck($1.loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck($1.loc, "double matrix");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtDouble;
$$.setMatrix(4, 4);
case 15:
#line 404 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
}
#line 4286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
case 228:
#line 1753 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
}
case 240:
#line 1813 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(2);
case 241:
#line 1819 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(3);
case 242:
#line 1825 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(4);
case 276:
#line 2029 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
case 277:
#line 2035 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
case 278:
#line 2041 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
case 279:
#line 2047 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
case 280:
#line 2053 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 3);
case 281:
#line 2059 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 4);
case 282:
#line 2065 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 2);
case 283:
#line 2071 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
case 284:
#line 2077 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 4);
case 285:
#line 2083 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 2);
case 286:
#line 2089 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 3);
case 287:
#line 2095 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix", parseContext.symbolTable.atBuiltInLevel());
+ parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+ if (! parseContext.symbolTable.atBuiltInLevel())
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
void updateExtensionBehavior(const char* const extension, TExtensionBehavior) { }
void checkExtensionStage(const TSourceLoc&, const char* const extension) { }
void fullIntegerCheck(const TSourceLoc&, const char* op) { }
- void doubleCheck(const TSourceLoc&, const char* op, bool builtIn = false) { }
+ void doubleCheck(const TSourceLoc&, const char* op) { }
bool float16Arithmetic() { return false; }
void requireFloat16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) { }
bool int16Arithmetic() { return false; }
virtual void fullIntegerCheck(const TSourceLoc&, const char* op);
virtual void unimplemented(const TSourceLoc&, const char* featureDesc);
- virtual void doubleCheck(const TSourceLoc&, const char* op, bool builtIn = false);
+ virtual void doubleCheck(const TSourceLoc&, const char* op);
virtual void float16Check(const TSourceLoc&, const char* op, bool builtIn = false);
virtual void float16ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false);
virtual bool float16Arithmetic();