static void inline_assembly_template_regardless_of_target_machine() { int tmp; asm volatile ( "nop\n" "a_value %w[v]\n" "o_value %w[o]" : [v] "=&r" (tmp) : [o] "r" (tmp) : "cc", "memory" ); } // RUN: c-index-test -test-inline-assembly %s 2>&1 | FileCheck %s // CHECK: ===ASM TEMPLATE=== // CHECK: nop // CHECK: a_value ${0:w} // CHECK: o_value ${1:w} // CHECK: ===ASM TEMPLATE END=== // CHECK: volatile: true // CHECK: Output #0 Constraint (=&r): DeclRefExpr=tmp:2:9 // CHECK: Input #0 Constraint (r): UnexposedExpr=tmp:2:9 // CHECK: Clobber #0: cc // CHECK: Clobber #1: memory // CHECK: ===ASM END=== static void inline_assembly_valid_x86_example() { int tmp; asm ( "nop\n" "mov %w[o], %w[v]" : [v] "=&r" (tmp) : [o] "r" (tmp) : "cc", "memory" ); } // CHECK: ===ASM TEMPLATE=== // CHECK: nop // CHECK: mov ${1:w}, ${0:w} // CHECK: ===ASM TEMPLATE END=== // CHECK: volatile: false // CHECK: Output #0 Constraint (=&r): DeclRefExpr=tmp:27:9 // CHECK: Input #0 Constraint (r): UnexposedExpr=tmp:27:9 // CHECK: Clobber #0: cc // CHECK: Clobber #1: memory // CHECK: ===ASM END===