diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-08-31 21:51:52 +0200 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-09-06 01:37:51 +0200 |
| commit | de710454f956bf4c2b0c880597de0c79a7449c0f (patch) | |
| tree | f7068030ae417b426da18adc617329830c7fe1e4 /validation/linear | |
| parent | e811962ea0f56da569c6504ac150b357b069b11a (diff) | |
| download | sparse-dev-de710454f956bf4c2b0c880597de0c79a7449c0f.tar.gz | |
use UNDEF for missing returns
If a return statement is missing in the last block, the
generated IR will be invalid because the number of operands
in the exit phi-node will not match the number or parent BBs.
Detect this situation and insert an UNDEF for the missing value.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/linear')
| -rw-r--r-- | validation/linear/missing-return0.c | 1 | ||||
| -rw-r--r-- | validation/linear/missing-return1.c | 1 | ||||
| -rw-r--r-- | validation/linear/missing-return2.c | 1 | ||||
| -rw-r--r-- | validation/linear/missing-return4.c | 1 | ||||
| -rw-r--r-- | validation/linear/missing-return5.c | 1 |
5 files changed, 0 insertions, 5 deletions
diff --git a/validation/linear/missing-return0.c b/validation/linear/missing-return0.c index d6019941..77ab5abd 100644 --- a/validation/linear/missing-return0.c +++ b/validation/linear/missing-return0.c @@ -7,5 +7,4 @@ static int foo(int a) /* * check-name: missing-return0 * check-command: sparse -vir -flinearize=last $file - * check-known-to-fail */ diff --git a/validation/linear/missing-return1.c b/validation/linear/missing-return1.c index c13135ad..4a8a9517 100644 --- a/validation/linear/missing-return1.c +++ b/validation/linear/missing-return1.c @@ -12,5 +12,4 @@ static int foo(int a) /* * check-name: missing-return1 * check-command: sparse -vir -flinearize=last $file - * check-known-to-fail */ diff --git a/validation/linear/missing-return2.c b/validation/linear/missing-return2.c index c1959b6f..395dcc14 100644 --- a/validation/linear/missing-return2.c +++ b/validation/linear/missing-return2.c @@ -8,5 +8,4 @@ static int foo(int a) /* * check-name: missing-return2 * check-command: sparse -vir -flinearize=last $file - * check-known-to-fail */ diff --git a/validation/linear/missing-return4.c b/validation/linear/missing-return4.c index dd30988b..779893a0 100644 --- a/validation/linear/missing-return4.c +++ b/validation/linear/missing-return4.c @@ -7,7 +7,6 @@ static int foo(int a) /* * check-name: missing-return4 * check-command: test-linearize -Wno-decl $file - * check-known-to-fail * * check-error-ignore * check-output-ignore diff --git a/validation/linear/missing-return5.c b/validation/linear/missing-return5.c index bcabd16a..e5504a19 100644 --- a/validation/linear/missing-return5.c +++ b/validation/linear/missing-return5.c @@ -14,7 +14,6 @@ int bar(int p) /* * check-name: missing/undef return * check-command: test-linearize -Wno-decl -fdump-ir=linearize $file - * check-known-to-fail * * check-output-ignore * check-output-pattern(2): phi\\..*,.* |
