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