aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-i386.c
diff options
context:
space:
mode:
Diffstat (limited to 'gas/config/tc-i386.c')
-rw-r--r--gas/config/tc-i386.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index b3f9f31..8585380 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -11566,15 +11566,19 @@ i386_att_operand (char *operand_string)
if (*base_string == ')')
{
char *temp_string;
+ unsigned int parens_not_balanced = 1;
/* We've already checked that the number of left & right ()'s are
equal, so this loop will not be infinite. */
do
{
base_string--;
+ if (*base_string == ')')
+ parens_not_balanced++;
+ if (*base_string == '(')
+ parens_not_balanced--;
}
- while (*base_string != '(' && *base_string != ')'
- && *base_string != '"');
+ while (parens_not_balanced && *base_string != '"');
temp_string = base_string;