| ... | ... | @@ -195,4 +195,52 @@ pub fn addCases(cases: *tests.RunTranslatedCContext) void { |
| 195 | 195 | \\ return 0; |
| 196 | 196 | \\} |
| 197 | 197 | , ""); |
| 198 | |
| 199 | cases.add("case boolean expression converted to int", |
| 200 | \\#include <stdlib.h> |
| 201 | \\int main(int argc, char **argv) { |
| 202 | \\ int value = 1 + 2 * 3 + 4 * 5 + 6 << 7 | 8 == 9; |
| 203 | \\ if (value != 4224) abort(); |
| 204 | \\ return 0; |
| 205 | \\} |
| 206 | , ""); |
| 207 | |
| 208 | cases.add("case boolean expression on left converted to int", |
| 209 | \\#include <stdlib.h> |
| 210 | \\int main(int argc, char **argv) { |
| 211 | \\ int value = 8 == 9 | 1 + 2 * 3 + 4 * 5 + 6 << 7; |
| 212 | \\ if (value != 4224) abort(); |
| 213 | \\ return 0; |
| 214 | \\} |
| 215 | , ""); |
| 216 | |
| 217 | cases.add("case boolean and operator+ converts bool to int", |
| 218 | \\#include <stdlib.h> |
| 219 | \\int main(int argc, char **argv) { |
| 220 | \\ int value = (8 == 9) + 3; |
| 221 | \\ int value2 = 3 + (8 == 9); |
| 222 | \\ if (value != value2) abort(); |
| 223 | \\ return 0; |
| 224 | \\} |
| 225 | , ""); |
| 226 | |
| 227 | cases.add("case boolean and operator<", |
| 228 | \\#include <stdlib.h> |
| 229 | \\int main(int argc, char **argv) { |
| 230 | \\ int value = (8 == 9) < 3; |
| 231 | \\ if (value == 0) abort(); |
| 232 | \\ return 0; |
| 233 | \\} |
| 234 | , ""); |
| 235 | |
| 236 | cases.add("case boolean and operator*", |
| 237 | \\#include <stdlib.h> |
| 238 | \\int main(int argc, char **argv) { |
| 239 | \\ int value = (8 == 9) * 3; |
| 240 | \\ int value2 = 3 * (9 == 9); |
| 241 | \\ if (value != 0) abort(); |
| 242 | \\ if (value2 == 0) abort(); |
| 243 | \\ return 0; |
| 244 | \\} |
| 245 | , ""); |
| 198 | 246 | } |