diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2019-01-17 22:58:01 +0100 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2019-09-27 02:17:34 +0200 |
| commit | 7aeb06b4bff797da4ea85a18738a2fd1f660d744 (patch) | |
| tree | 6955efba6e8474607407b1df654911f1216555c7 /validation | |
| parent | 62308ab6a6025f8df926b8af009f68fbebe040b6 (diff) | |
| download | sparse-dev-7aeb06b4bff797da4ea85a18738a2fd1f660d744.tar.gz | |
asm: check earlier that body & constraints are strings
The syntax of extended ASM statements requires that the
bodies & constraints are given via a literal string.
However, at parsing time more general expressions are accepted
and it's checked only at evaluation time if these are effectively
string literals. This has at least two drawbacks:
*) evaluate_asm_statement() is slightly more complicated than
needed, mixing these checks with the real evaluation code
*) in case of error, the diagnostic is issued later than
other syntaxic warnings.
Fix this by checking at parse-time that ASM bodies & constraints
are string literals and not some arbitrary expressions.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation')
| -rw-r--r-- | validation/asm-bad0.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/validation/asm-bad0.c b/validation/asm-bad0.c index fcd9b1c4..aa9bf28d 100644 --- a/validation/asm-bad0.c +++ b/validation/asm-bad0.c @@ -30,12 +30,12 @@ static void iexpr(void) * check-name: asm-bad0 * * check-error-start +asm-bad0.c:6:13: error: string literal expected for inline asm +asm-bad0.c:11:32: error: string literal expected for asm constraint +asm-bad0.c:16:49: error: string literal expected for asm constraint asm-bad0.c:21:41: error: Expected ] at end of array dereference asm-bad0.c:21:41: error: got ) asm-bad0.c:26:59: error: Expected ] at end of array dereference asm-bad0.c:26:59: error: got ) -asm-bad0.c:6:9: error: need constant string for inline asm -asm-bad0.c:11:32: error: asm output constraint is not a string -asm-bad0.c:16:49: error: asm input constraint is not a string * check-error-end */ |
