LLVM the consecutive '%' modifiers are redundant, skip them.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@225602
91177308-0d34-0410-b5e6-
96231b3b80d8
Constraint++;
break;
case '&':
- Result += '&';
- while (Constraint[1] && Constraint[1] == '&')
+ case '%':
+ Result += *Constraint;
+ while (Constraint[1] && Constraint[1] == *Constraint)
Constraint++;
break;
case ',':
// CHECK: @t30
// CHECK: call void asm sideeffect "", "=*&rm,0,~{dirflag},~{fpsr},~{flags}"
}
+
+void t31(int len) {
+ __asm__ volatile(""
+ : "+%%rm"(len), "+rm"(len));
+ // CHECK: @t31
+ // CHECK: call void asm sideeffect "", "=*%rm,=*rm,0,1,~{dirflag},~{fpsr},~{flags}"
+}