diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2004-11-29 02:21:28 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2004-11-28 18:21:28 -0800 |
commit | 6db081f1a815ed28c6639fcdb4c9c0c169808a4b (patch) | |
tree | abe343eb625ab7e2ffd9118fa57d17e5ded9eca0 /gcc/gimplify.c | |
parent | 47023d1a43e5b5a1f53d09d7b05aec5ac94e79ce (diff) | |
download | gcc-6db081f1a815ed28c6639fcdb4c9c0c169808a4b.zip gcc-6db081f1a815ed28c6639fcdb4c9c0c169808a4b.tar.gz gcc-6db081f1a815ed28c6639fcdb4c9c0c169808a4b.tar.bz2 |
[multiple changes]
2004-11-18 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/18164
* gimplify.c (gimplify_asm_expr): If the length of an output operand
is zero, do not process it, just let it go through.
2004-11-28 Andrew Pinski <pinskia@physics.uc.edu>
* gcc.dg/pr18164.c: New test.
From-SVN: r91459
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index c6256fa..ecd4271 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -3120,8 +3120,12 @@ gimplify_asm_expr (tree *expr_p, tree *pre_p, tree *post_p) ret = GS_ALL_DONE; for (i = 0, link = ASM_OUTPUTS (expr); link; ++i, link = TREE_CHAIN (link)) { + size_t constraint_len; 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); @@ -3145,7 +3149,6 @@ gimplify_asm_expr (tree *expr_p, tree *pre_p, tree *post_p) operands. */ tree input; char buf[10]; - size_t constraint_len = strlen (constraint); /* Turn the in/out constraint into an output constraint. */ char *p = xstrdup (constraint); |