Sanitize debug source location tracking for implicit branch and return
This patch tries to attach debug location of a branch/return instruction to its predecessor or the closing brace. If none could be found, no debug info should be emitted.
This commit is contained in:
parent
b1fac200c4
commit
a496a34b43
30 changed files with 4713 additions and 4253 deletions
60
Test/spv.debuginfo.implicit_br.glsl.frag
Normal file
60
Test/spv.debuginfo.implicit_br.glsl.frag
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
#version 460
|
||||
|
||||
out int outx;
|
||||
int counter = 0;
|
||||
|
||||
void test_if() {
|
||||
if (false) {
|
||||
counter += 1;
|
||||
}
|
||||
}
|
||||
|
||||
void test_ifelse() {
|
||||
if (false) {
|
||||
counter += 1;
|
||||
}
|
||||
else {
|
||||
counter += 2;
|
||||
}
|
||||
}
|
||||
|
||||
void test_if_compound() {
|
||||
if (false) {
|
||||
if (false) {
|
||||
counter += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void test_if_compound2() {
|
||||
if (false) {
|
||||
if (false) {
|
||||
counter += 1;
|
||||
}
|
||||
|
||||
counter += 2;
|
||||
}
|
||||
}
|
||||
|
||||
void test_switch() {
|
||||
switch (0) {
|
||||
case 0:
|
||||
counter += 1;
|
||||
// implict fallthrough
|
||||
case 1:
|
||||
counter += 2;
|
||||
break;
|
||||
default:
|
||||
counter += 3;
|
||||
// implicit break
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
test_if();
|
||||
test_ifelse();
|
||||
test_if_compound();
|
||||
test_if_compound2();
|
||||
test_switch();
|
||||
outx = counter;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue