brintos

brintos / llvm-project-archived public Read only

0
0
Text · 791 B · a313940 Raw
39 lines · cpp
1// RUN: %clang_cc1 -triple i386-unknown-unknown %s -emit-llvm -o - | FileCheck %s2 3 4// CHECK: _Z3fooRi(ptr inreg5void __attribute__ ((regparm (1)))  foo(int &a) {6}7 8struct S1 {9  int x;10  S1(const S1 &y);11};12 13void __attribute__((regparm(3))) foo2(S1 a, int b);14// CHECK: declare void @_Z4foo22S1i(ptr dead_on_return inreg noundef, i32 inreg noundef)15void bar2(S1 a, int b) {16  foo2(a, b);17}18 19struct S2 {20  int x;21};22 23void __attribute__((regparm(3))) foo3(struct S2 a, int b);24// CHECK: declare void @_Z4foo32S2i(i32 inreg, i32 inreg noundef)25void bar3(struct S2 a, int b) {26  foo3(a, b);27}28 29struct S3 {30  struct {31    struct {} b[0];32  } a;33};34__attribute((regparm(2))) void foo4(S3 a, int b);35// CHECK: declare void @_Z4foo42S3i(i32 inreg noundef)36void bar3(S3 a, int b) {37  foo4(a, b);38}39