From c20644efdb39d62a225914636fb4e7816709ad9a Mon Sep 17 00:00:00 2001 From: Xavier Leroy Date: Tue, 21 Apr 2015 13:37:08 +0200 Subject: Avoid multiple errors being reported in the case #outputs >= 2. --- cparser/ExtendedAsm.ml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'cparser/ExtendedAsm.ml') diff --git a/cparser/ExtendedAsm.ml b/cparser/ExtendedAsm.ml index 4cd5fc21..76e368e1 100644 --- a/cparser/ExtendedAsm.ml +++ b/cparser/ExtendedAsm.ml @@ -136,10 +136,14 @@ let transf_outputs loc env = function formatloc loc cstr; (None, [], set_label_reg lbl 0 0 StringMap.empty, 1, 1) end - | _ -> + | outputs -> error "%aUnsupported feature: asm statement with 2 or more outputs" formatloc loc; - (None, [], StringMap.empty, 0, 0) + let rec bind_outputs pos subst = function + | [] -> (None, [], subst, pos, pos) + | (lbl, cstr, e) :: outputs -> + bind_outputs (pos + 1) (set_label_reg lbl pos pos subst) outputs + in bind_outputs 0 StringMap.empty outputs (* Check the clobber list *) -- cgit