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:
Qingyuan Zheng 2024-08-26 03:53:07 +00:00 committed by arcady-lunarg
parent b1fac200c4
commit a496a34b43
30 changed files with 4713 additions and 4253 deletions

View 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;
}