1 /* { dg-do compile } */
2 /* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } {"-mfloat-abi=softfp" } } */
3 /* { dg-options "-O2 -fno-omit-frame-pointer -mabi=apcs-gnu -mfloat-abi=softfp" } */
4
5
6 struct super_block
7 {
8 int s_blocksize_bits;
9 };
10 struct btrfs_fs_info
11 {
12 struct super_block *sb;
13 };
14 struct btrfs_root
15 {
16 struct btrfs_fs_info *fs_info;
17 } *b;
18
19
20 int a, c, d;
21 long long e;
22
23 extern int foo1 (struct btrfs_root *, int, int, int);
24 extern int foo2 (struct btrfs_root *, int, int);
25
26 int
truncate_one_csum(struct btrfs_root * p1,long long p2,long long p3)27 truncate_one_csum (struct btrfs_root *p1, long long p2, long long p3)
28 {
29 int f, g, i = p1->fs_info->sb->s_blocksize_bits;
30 g = a;
31 long long h = p2 + p3;
32 f = foo1 (b, 0, c, 0);
33 e = f / g;
34 e <<= p1->fs_info->sb->s_blocksize_bits;
35 if (d < p2)
36 {
37 int j = e - h >> i;
38 foo2 (p1, 0, j);
39 }
40 else
41 {
42 asm ("1\t.long ");
43 __builtin_unreachable ();
44 }
45 }
46