annotate clang/test/CodeGen/cleanup-stack.c @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -triple i386-unknown-unknown -O3 -emit-llvm %s -o - | FileCheck %s
anatofuz
parents:
diff changeset
2 // CHECK: ret i32 9
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 struct s0 {
anatofuz
parents:
diff changeset
5 int *var;
anatofuz
parents:
diff changeset
6 int addend;
anatofuz
parents:
diff changeset
7 };
anatofuz
parents:
diff changeset
8
anatofuz
parents:
diff changeset
9 static void f0(struct s0 *p) {
anatofuz
parents:
diff changeset
10 *p->var += p->addend;
anatofuz
parents:
diff changeset
11 }
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 int f1(void) {
anatofuz
parents:
diff changeset
14 int var = 0;
anatofuz
parents:
diff changeset
15
anatofuz
parents:
diff changeset
16 {
anatofuz
parents:
diff changeset
17 struct s0 x __attribute__((cleanup(f0))) = { &var, 2 };
anatofuz
parents:
diff changeset
18 struct s0 y __attribute__((cleanup(f0))) = { &var, 3 };
anatofuz
parents:
diff changeset
19 {
anatofuz
parents:
diff changeset
20 struct s0 y __attribute__((cleanup(f0))) = { &var, 4 };
anatofuz
parents:
diff changeset
21 }
anatofuz
parents:
diff changeset
22 }
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 return var;
anatofuz
parents:
diff changeset
25 }