xref: /linux/lib/dhry_2.c (revision 1a0e2cd9c4243871e534f02459ecca0ddd6ff6d5)
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