+2008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ PR middle-end/34906
+ * gimplify.c (gimplify_asm_expr): Check the return code of
+ parse_output_constraint call, set function return and is_inout
+ value if it failed.
+
2008-06-22 Ian Lance Taylor <iant@google.com>
* c-lex.c (narrowest_unsigned_type): Change itk to int.
for (i = 0, link = ASM_OUTPUTS (expr); link; ++i, link = TREE_CHAIN (link))
{
size_t constraint_len;
+ bool ok;
oconstraints[i] = constraint
= TREE_STRING_POINTER (TREE_VALUE (TREE_PURPOSE (link)));
constraint_len = strlen (constraint);
if (constraint_len == 0)
continue;
- parse_output_constraint (&constraint, i, 0, 0,
- &allows_mem, &allows_reg, &is_inout);
+ ok = parse_output_constraint (&constraint, i, 0, 0,
+ &allows_mem, &allows_reg, &is_inout);
+ if (!ok)
+ {
+ ret = GS_ERROR;
+ is_inout = false;
+ }
if (!allows_reg && allows_mem)
mark_addressable (TREE_VALUE (link));