2016-03-14 05:05:23 +08:00
|
|
|
// RUN: %clang_cc1 -triple mipsel-unknown-linux -O3 -S -o - -emit-llvm %s | FileCheck %s -check-prefix=O32
|
|
|
|
// RUN: %clang_cc1 -triple mips64el-unknown-linux -O3 -S -target-abi n64 -o - -emit-llvm %s | FileCheck %s -check-prefix=N64
|
2012-05-12 05:56:58 +08:00
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
float f[3];
|
|
|
|
} S0;
|
|
|
|
|
|
|
|
extern void foo2(S0);
|
|
|
|
|
[CodeGenModule] Assume dso_local for -fpic -fno-semantic-interposition
Summary:
Clang -fpic defaults to -fno-semantic-interposition (GCC -fpic defaults
to -fsemantic-interposition).
Users need to specify -fsemantic-interposition to get semantic
interposition behavior.
Semantic interposition is currently a best-effort feature. There may
still be some cases where it is not handled well.
Reviewers: peter.smith, rnk, serge-sans-paille, sfertile, jfb, jdoerfert
Subscribers: dschuff, jyknight, dylanmckay, nemanjai, jvesely, kbarton, fedor.sergeev, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, zzheng, edward-jones, atanasyan, rogfer01, MartinMosbeck, brucehoult, the_o, arphaman, PkmX, jocewei, jsji, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D73865
2020-02-03 04:23:47 +08:00
|
|
|
// O32-LABEL: define dso_local void @foo1(i32 inreg %a0.coerce0, i32 inreg %a0.coerce1, i32 inreg %a0.coerce2)
|
|
|
|
// N64-LABEL: define dso_local void @foo1(i64 inreg %a0.coerce0, i32 inreg %a0.coerce1)
|
2012-05-12 05:56:58 +08:00
|
|
|
|
|
|
|
void foo1(S0 a0) {
|
|
|
|
foo2(a0);
|
|
|
|
}
|