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
e5e58cfe
Commit
e5e58cfe
authored
Nov 01, 2016
by
John Kessenich
Committed by
GitHub
Nov 01, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #575 from steve-lunarg/iomap-warning-fix
Fix build warnings in iomapper.cpp, re-indent to glslang standard
parents
89df3c2d
5b2d667f
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 @
e5e58cfe
...
@@ -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