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
5b2d667f
Commit
5b2d667f
authored
Nov 01, 2016
by
steve-lunarg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix build warnings in remapper, re-indent for glslang standard
This has no functional changes.
parent
89df3c2d
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
6 deletions
+17
-6
iomapper.cpp
glslang/MachineIndependent/iomapper.cpp
+17
-6
No files found.
glslang/MachineIndependent/iomapper.cpp
View file @
5b2d667f
...
@@ -132,7 +132,7 @@ public:
...
@@ -132,7 +132,7 @@ public:
}
}
}
}
private
:
private
:
TVarLiveMap
&
varLiveList
;
TVarLiveMap
&
varLiveList
;
};
};
...
@@ -174,15 +174,16 @@ struct TResolverAdaptor
...
@@ -174,15 +174,16 @@ struct TResolverAdaptor
,
error
(
e
)
,
error
(
e
)
{
{
}
}
inline
void
operator
()(
TVarEntryInfo
&
ent
)
inline
void
operator
()(
TVarEntryInfo
&
ent
)
{
{
bool
isValid
=
resolver
.
validateBinding
(
stage
,
ent
.
symbol
->
getName
().
c_str
(),
ent
.
symbol
->
getType
(),
ent
.
live
);
const
bool
isValid
=
resolver
.
validateBinding
(
stage
,
ent
.
symbol
->
getName
().
c_str
(),
ent
.
symbol
->
getType
(),
ent
.
live
);
if
(
isValid
)
{
if
(
isValid
)
{
ent
.
newBinding
=
resolver
.
resolveBinding
(
stage
,
ent
.
symbol
->
getName
().
c_str
(),
ent
.
symbol
->
getType
(),
ent
.
live
);
ent
.
newBinding
=
resolver
.
resolveBinding
(
stage
,
ent
.
symbol
->
getName
().
c_str
(),
ent
.
symbol
->
getType
(),
ent
.
live
);
ent
.
newSet
=
resolver
.
resolveSet
(
stage
,
ent
.
symbol
->
getName
().
c_str
(),
ent
.
symbol
->
getType
(),
ent
.
live
);
ent
.
newSet
=
resolver
.
resolveSet
(
stage
,
ent
.
symbol
->
getName
().
c_str
(),
ent
.
symbol
->
getType
(),
ent
.
live
);
if
(
ent
.
newBinding
!=
-
1
)
{
if
(
ent
.
newBinding
!=
-
1
)
{
if
(
ent
.
newBinding
>=
TQualifier
::
layoutBindingEnd
)
{
if
(
ent
.
newBinding
>=
int
(
TQualifier
::
layoutBindingEnd
)
)
{
TString
err
=
"mapped binding out of range: "
+
ent
.
symbol
->
getName
();
TString
err
=
"mapped binding out of range: "
+
ent
.
symbol
->
getName
();
infoSink
.
info
.
message
(
EPrefixInternalError
,
err
.
c_str
());
infoSink
.
info
.
message
(
EPrefixInternalError
,
err
.
c_str
());
...
@@ -190,7 +191,7 @@ struct TResolverAdaptor
...
@@ -190,7 +191,7 @@ struct TResolverAdaptor
}
}
}
}
if
(
ent
.
newSet
!=
-
1
)
{
if
(
ent
.
newSet
!=
-
1
)
{
if
(
ent
.
newSet
>=
TQualifier
::
layoutSetEnd
)
{
if
(
ent
.
newSet
>=
int
(
TQualifier
::
layoutSetEnd
)
)
{
TString
err
=
"mapped set out of range: "
+
ent
.
symbol
->
getName
();
TString
err
=
"mapped set out of range: "
+
ent
.
symbol
->
getName
();
infoSink
.
info
.
message
(
EPrefixInternalError
,
err
.
c_str
());
infoSink
.
info
.
message
(
EPrefixInternalError
,
err
.
c_str
());
...
@@ -203,6 +204,7 @@ struct TResolverAdaptor
...
@@ -203,6 +204,7 @@ struct TResolverAdaptor
error
=
true
;
error
=
true
;
}
}
}
}
EShLanguage
stage
;
EShLanguage
stage
;
TIoMapResolver
&
resolver
;
TIoMapResolver
&
resolver
;
TInfoSink
&
infoSink
;
TInfoSink
&
infoSink
;
...
@@ -225,21 +227,25 @@ struct TDefaultIoResolver : public glslang::TIoMapResolver
...
@@ -225,21 +227,25 @@ struct TDefaultIoResolver : public glslang::TIoMapResolver
typedef
std
::
vector
<
int
>
TSlotSet
;
typedef
std
::
vector
<
int
>
TSlotSet
;
typedef
std
::
unordered_map
<
int
,
TSlotSet
>
TSlotSetMap
;
typedef
std
::
unordered_map
<
int
,
TSlotSet
>
TSlotSetMap
;
TSlotSetMap
slots
;
TSlotSetMap
slots
;
TSlotSet
::
iterator
findSlot
(
int
set
,
int
slot
)
TSlotSet
::
iterator
findSlot
(
int
set
,
int
slot
)
{
{
return
std
::
lower_bound
(
slots
[
set
].
begin
(),
slots
[
set
].
end
(),
slot
);
return
std
::
lower_bound
(
slots
[
set
].
begin
(),
slots
[
set
].
end
(),
slot
);
}
}
bool
checkEmpty
(
int
set
,
int
slot
)
bool
checkEmpty
(
int
set
,
int
slot
)
{
{
TSlotSet
::
iterator
at
=
findSlot
(
set
,
slot
);
TSlotSet
::
iterator
at
=
findSlot
(
set
,
slot
);
return
!
(
at
!=
slots
[
set
].
end
()
&&
*
at
==
slot
);
return
!
(
at
!=
slots
[
set
].
end
()
&&
*
at
==
slot
);
}
}
int
reserveSlot
(
int
set
,
int
slot
)
int
reserveSlot
(
int
set
,
int
slot
)
{
{
TSlotSet
::
iterator
at
=
findSlot
(
set
,
slot
);
TSlotSet
::
iterator
at
=
findSlot
(
set
,
slot
);
slots
[
set
].
insert
(
at
,
slot
);
slots
[
set
].
insert
(
at
,
slot
);
return
slot
;
return
slot
;
}
}
int
getFreeSlot
(
int
set
,
int
base
)
int
getFreeSlot
(
int
set
,
int
base
)
{
{
TSlotSet
::
iterator
at
=
findSlot
(
set
,
base
);
TSlotSet
::
iterator
at
=
findSlot
(
set
,
base
);
...
@@ -252,7 +258,8 @@ struct TDefaultIoResolver : public glslang::TIoMapResolver
...
@@ -252,7 +258,8 @@ struct TDefaultIoResolver : public glslang::TIoMapResolver
break
;
break
;
return
reserveSlot
(
set
,
base
);
return
reserveSlot
(
set
,
base
);
}
}
bool
validateBinding
(
EShLanguage
stage
,
const
char
*
/*name*/
,
const
glslang
::
TType
&
type
,
bool
/*is_live*/
)
override
bool
validateBinding
(
EShLanguage
/*stage*/
,
const
char
*
/*name*/
,
const
glslang
::
TType
&
type
,
bool
/*is_live*/
)
override
{
{
if
(
type
.
getQualifier
().
hasBinding
())
{
if
(
type
.
getQualifier
().
hasBinding
())
{
int
set
;
int
set
;
...
@@ -275,7 +282,8 @@ struct TDefaultIoResolver : public glslang::TIoMapResolver
...
@@ -275,7 +282,8 @@ struct TDefaultIoResolver : public glslang::TIoMapResolver
}
}
return
true
;
return
true
;
}
}
int
resolveBinding
(
EShLanguage
stage
,
const
char
*
/*name*/
,
const
glslang
::
TType
&
type
,
bool
is_live
)
override
int
resolveBinding
(
EShLanguage
/*stage*/
,
const
char
*
/*name*/
,
const
glslang
::
TType
&
type
,
bool
is_live
)
override
{
{
int
set
;
int
set
;
if
(
type
.
getQualifier
().
hasSet
())
if
(
type
.
getQualifier
().
hasSet
())
...
@@ -313,6 +321,7 @@ struct TDefaultIoResolver : public glslang::TIoMapResolver
...
@@ -313,6 +321,7 @@ struct TDefaultIoResolver : public glslang::TIoMapResolver
return
-
1
;
return
-
1
;
}
}
int
resolveSet
(
EShLanguage
/*stage*/
,
const
char
*
/*name*/
,
const
glslang
::
TType
&
type
,
bool
/*is_live*/
)
override
int
resolveSet
(
EShLanguage
/*stage*/
,
const
char
*
/*name*/
,
const
glslang
::
TType
&
type
,
bool
/*is_live*/
)
override
{
{
if
(
type
.
getQualifier
().
hasSet
())
if
(
type
.
getQualifier
().
hasSet
())
...
@@ -365,6 +374,7 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSi
...
@@ -365,6 +374,7 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSi
iter_binding_live
.
functions
.
pop_back
();
iter_binding_live
.
functions
.
pop_back
();
function
->
traverse
(
&
iter_binding_live
);
function
->
traverse
(
&
iter_binding_live
);
}
}
// sort entries by priority. see TVarEntryInfo::TOrderByPriority for info.
// sort entries by priority. see TVarEntryInfo::TOrderByPriority for info.
std
::
sort
(
varMap
.
begin
(),
varMap
.
end
(),
TVarEntryInfo
::
TOrderByPriority
());
std
::
sort
(
varMap
.
begin
(),
varMap
.
end
(),
TVarEntryInfo
::
TOrderByPriority
());
...
@@ -378,6 +388,7 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSi
...
@@ -378,6 +388,7 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSi
TVarSetTraverser
iter_iomap
(
intermediate
,
varMap
);
TVarSetTraverser
iter_iomap
(
intermediate
,
varMap
);
root
->
traverse
(
&
iter_iomap
);
root
->
traverse
(
&
iter_iomap
);
}
}
return
!
hadError
;
return
!
hadError
;
}
}
...
...
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