aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-01-17 22:58:01 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-09-27 02:17:34 +0200
commit7aeb06b4bff797da4ea85a18738a2fd1f660d744 (patch)
tree6955efba6e8474607407b1df654911f1216555c7 /validation
parent62308ab6a6025f8df926b8af009f68fbebe040b6 (diff)
downloadsparse-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.c6
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
*/