summaryrefslogtreecommitdiff
path: root/gcc/testsuite/treelang/a01gcci01.tree
blob: e1e1ac1659fbc230a535f3156e400ec9688c091b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// -*- c -*- c mode in emacs

external_definition int add(int arg1, int arg2);
external_definition int subtract(int arg3, int arg4);
external_definition int first_nonzero(int arg5, int arg6);
external_definition int double_plus_one(int arg7);

add 
{
  return arg1 + arg2;
}

        
subtract 
{
  return arg3 - arg4;
}

double_plus_one
{
  automatic int aaa;
  aaa=add(arg7, arg7);
  aaa=add(aaa, aaa);
  aaa=subtract(subtract(aaa, arg7), arg7) + 1;
  return aaa;
}

first_nonzero
{
  if (arg5)
    {
      return arg5;
    }
  else
    {
    }
  return arg6;
}