xref: /openbmc/linux/lib/dhry_2.c (revision e724e7aa)
1  // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2  /*
3   ****************************************************************************
4   *
5   *                   "DHRYSTONE" Benchmark Program
6   *                   -----------------------------
7   *
8   *  Version:    C, Version 2.1
9   *
10   *  File:       dhry_2.c (part 3 of 3)
11   *
12   *  Date:       May 25, 1988
13   *
14   *  Author:     Reinhold P. Weicker
15   *
16   ****************************************************************************
17   */
18  
19  #include "dhry.h"
20  
21  #include <linux/string.h>
22  
23  
24  static Boolean Func_3(Enumeration Enum_Par_Val)
25  /***************************/
26  /* executed once        */
27  /* Enum_Par_Val == Ident_3 */
28  {
29  	Enumeration Enum_Loc;
30  
31  	Enum_Loc = Enum_Par_Val;
32  	if (Enum_Loc == Ident_3) {
33  		/* then, executed */
34  		return true;
35  	} else {
36  		/* not executed */
37  		return false;
38  	}
39  } /* Func_3 */
40  
41  
42  void Proc_6(Enumeration  Enum_Val_Par, Enumeration *Enum_Ref_Par)
43  /*********************************/
44  /* executed once */
45  /* Enum_Val_Par == Ident_3, Enum_Ref_Par becomes Ident_2 */
46  {
47  	*Enum_Ref_Par = Enum_Val_Par;
48  	if (!Func_3(Enum_Val_Par)) {
49  		/* then, not executed */
50  		*Enum_Ref_Par = Ident_4;
51  	}
52  	switch (Enum_Val_Par) {
53  	case Ident_1:
54  		*Enum_Ref_Par = Ident_1;
55  		break;
56  	case Ident_2:
57  		if (Int_Glob > 100) {
58  			/* then */
59  			*Enum_Ref_Par = Ident_1;
60  		} else {
61  			*Enum_Ref_Par = Ident_4;
62  		}
63  		break;
64  	case Ident_3: /* executed */
65  		*Enum_Ref_Par = Ident_2;
66  		break;
67  	case Ident_4:
68  		break;
69  	case Ident_5:
70  		*Enum_Ref_Par = Ident_3;
71  		break;
72  	} /* switch */
73  } /* Proc_6 */
74  
75  
76  void Proc_7(One_Fifty Int_1_Par_Val, One_Fifty Int_2_Par_Val, One_Fifty *Int_Par_Ref)
77  /**********************************************/
78  /* executed three times                                      */
79  /* first call:      Int_1_Par_Val == 2, Int_2_Par_Val == 3,  */
80  /*                  Int_Par_Ref becomes 7                    */
81  /* second call:     Int_1_Par_Val == 10, Int_2_Par_Val == 5, */
82  /*                  Int_Par_Ref becomes 17                   */
83  /* third call:      Int_1_Par_Val == 6, Int_2_Par_Val == 10, */
84  /*                  Int_Par_Ref becomes 18                   */
85  {
86  	One_Fifty Int_Loc;
87  
88  	Int_Loc = Int_1_Par_Val + 2;
89  	*Int_Par_Ref = Int_2_Par_Val + Int_Loc;
90  } /* Proc_7 */
91  
92  
93  void Proc_8(Arr_1_Dim Arr_1_Par_Ref, Arr_2_Dim Arr_2_Par_Ref, int Int_1_Par_Val, int Int_2_Par_Val)
94  /*********************************************************************/
95  /* executed once      */
96  /* Int_Par_Val_1 == 3 */
97  /* Int_Par_Val_2 == 7 */
98  {
99  	One_Fifty Int_Index;
100  	One_Fifty Int_Loc;
101  
102  	Int_Loc = Int_1_Par_Val + 5;
103  	Arr_1_Par_Ref[Int_Loc] = Int_2_Par_Val;
104  	Arr_1_Par_Ref[Int_Loc+1] = Arr_1_Par_Ref[Int_Loc];
105  	Arr_1_Par_Ref[Int_Loc+30] = Int_Loc;
106  	for (Int_Index = Int_Loc; Int_Index <= Int_Loc+1; ++Int_Index)
107  		Arr_2_Par_Ref[Int_Loc][Int_Index] = Int_Loc;
108  	Arr_2_Par_Ref[Int_Loc][Int_Loc-1] += 1;
109  	Arr_2_Par_Ref[Int_Loc+20][Int_Loc] = Arr_1_Par_Ref[Int_Loc];
110  	Int_Glob = 5;
111  } /* Proc_8 */
112  
113  
114  Enumeration Func_1(Capital_Letter Ch_1_Par_Val, Capital_Letter Ch_2_Par_Val)
115  /*************************************************/
116  /* executed three times                                         */
117  /* first call:      Ch_1_Par_Val == 'H', Ch_2_Par_Val == 'R'    */
118  /* second call:     Ch_1_Par_Val == 'A', Ch_2_Par_Val == 'C'    */
119  /* third call:      Ch_1_Par_Val == 'B', Ch_2_Par_Val == 'C'    */
120  {
121  	Capital_Letter Ch_1_Loc;
122  	Capital_Letter Ch_2_Loc;
123  
124  	Ch_1_Loc = Ch_1_Par_Val;
125  	Ch_2_Loc = Ch_1_Loc;
126  	if (Ch_2_Loc != Ch_2_Par_Val) {
127  		/* then, executed */
128  		return Ident_1;
129  	} else {
130  		/* not executed */
131  		Ch_1_Glob = Ch_1_Loc;
132  		return Ident_2;
133  	}
134  } /* Func_1 */
135  
136  
137  Boolean Func_2(Str_30 Str_1_Par_Ref, Str_30 Str_2_Par_Ref)
138  /*************************************************/
139  /* executed once */
140  /* Str_1_Par_Ref == "DHRYSTONE PROGRAM, 1'ST STRING" */
141  /* Str_2_Par_Ref == "DHRYSTONE PROGRAM, 2'ND STRING" */
142  {
143  	One_Thirty Int_Loc;
144  	Capital_Letter Ch_Loc;
145  
146  	Int_Loc = 2;
147  	while (Int_Loc <= 2) {
148  		/* loop body executed once */
149  		if (Func_1(Str_1_Par_Ref[Int_Loc],
150  			   Str_2_Par_Ref[Int_Loc+1]) == Ident_1) {
151  			/* then, executed */
152  			Ch_Loc = 'A';
153  			Int_Loc += 1;
154  		}
155  	} /* if, while */
156  	if (Ch_Loc >= 'W' && Ch_Loc < 'Z') {
157  		/* then, not executed */
158  		Int_Loc = 7;
159  	}
160  	if (Ch_Loc == 'R') {
161  		/* then, not executed */
162  		return true;
163  	} else {
164  		/* executed */
165  		if (strcmp(Str_1_Par_Ref, Str_2_Par_Ref) > 0) {
166  			/* then, not executed */
167  			Int_Loc += 7;
168  			Int_Glob = Int_Loc;
169  			return true;
170  		} else {
171  			/* executed */
172  			return false;
173  		}
174  	} /* if Ch_Loc */
175  } /* Func_2 */
176