1b0d17251Schristos /* 2*97e3c585Schristos * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. 3b0d17251Schristos * Copyright Siemens AG 2015-2022 4b0d17251Schristos * 5b0d17251Schristos * Licensed under the Apache License 2.0 (the "License"). You may not use 6b0d17251Schristos * this file except in compliance with the License. You can obtain a copy 7b0d17251Schristos * in the file LICENSE in the source distribution or at 8b0d17251Schristos * https://www.openssl.org/source/license.html 9b0d17251Schristos */ 10b0d17251Schristos 11b0d17251Schristos /* 12b0d17251Schristos * A collection of test cases where check-format.pl should not report issues. 13b0d17251Schristos * There are some known false positives, though, which are marked below. 14b0d17251Schristos */ 15b0d17251Schristos 164170684fSchristos #include <errno.h> /* should not report whitespace nits within <...> */ 17b0d17251Schristos #define F \ 18b0d17251Schristos void f() \ 19b0d17251Schristos { \ 20b0d17251Schristos int i; \ 21b0d17251Schristos int j; \ 22b0d17251Schristos \ 23b0d17251Schristos return; \ 24b0d17251Schristos } 25b0d17251Schristos 264170684fSchristos /* allow extra SPC in single-line comment */ 274170684fSchristos /* 284170684fSchristos * allow extra SPC in regular multi-line comment 294170684fSchristos */ 30b0d17251Schristos /*- 31b0d17251Schristos * allow extra SPC in format-tagged multi-line comment 32b0d17251Schristos */ 334170684fSchristos /** allow extra '*' in comment opening */ 344170684fSchristos /*! allow extra '!' in comment opening */ 354170684fSchristos /* 364170684fSchristos ** allow "**" as first non-space chars of a line within multi-line comment 374170684fSchristos */ 384170684fSchristos 39b0d17251Schristos int f(void) /* 40b0d17251Schristos * trailing multi-line comment 41b0d17251Schristos */ 42b0d17251Schristos { 43b0d17251Schristos typedef int INT; 44b0d17251Schristos void v; 45b0d17251Schristos short b; 46b0d17251Schristos char c; 47b0d17251Schristos signed s; 48b0d17251Schristos unsigned u; 49b0d17251Schristos int i; 50b0d17251Schristos long l; 51b0d17251Schristos float f; 52b0d17251Schristos double d; 53b0d17251Schristos enum {} enu; 54b0d17251Schristos struct {} stru; 55b0d17251Schristos union {} un; 56b0d17251Schristos auto a; 57b0d17251Schristos extern e; 58b0d17251Schristos static int stat; 59b0d17251Schristos const int con; 60b0d17251Schristos volatile int vola; 61b0d17251Schristos register int reg; 62b0d17251Schristos OSSL_x y, *p = params; 63b0d17251Schristos int params[]; 64b0d17251Schristos OSSL_PARAM * (* params []) [MAX + 1]; 65b0d17251Schristos XY *(* fn)(int a, char b); 66b0d17251Schristos /* 67b0d17251Schristos * multi-line comment should not disturb detection of local decls 68b0d17251Schristos */ 69b0d17251Schristos BIO1 ***b; 70b0d17251Schristos /* intra-line comment should not disturb detection of local decls */ 71b0d17251Schristos unsigned k; 72b0d17251Schristos 73b0d17251Schristos /* intra-line comment should not disturb detection of end of local decls */ 74b0d17251Schristos 75b0d17251Schristos { 76b0d17251Schristos int x; /* just decls in block */ 77b0d17251Schristos } 78b0d17251Schristos if (p != (unsigned char *) 79b0d17251Schristos &(ctx->tmp[0])) { 80b0d17251Schristos i -= (p - (unsigned char *) /* do not confuse with var decl */ 81b0d17251Schristos &(ctx->tmp[0])); 82b0d17251Schristos } 83b0d17251Schristos { 84b0d17251Schristos ctx->buf_off = 0; /* do not confuse with var decl */ 85b0d17251Schristos return 0; 86b0d17251Schristos } 87b0d17251Schristos { 88b0d17251Schristos ctx->buf_len = EVP_EncodeBlock((unsigned char *)ctx->buf, 89b0d17251Schristos (unsigned char *)ctx->tmp, /* no decl */ 90b0d17251Schristos ctx->tmp_len); 91b0d17251Schristos } 92b0d17251Schristos { 93b0d17251Schristos EVP_EncodeFinal(ctx->base64, 94b0d17251Schristos (unsigned char *)ctx->buf, &(ctx->len)); /* no decl */ 95b0d17251Schristos /* push out the bytes */ 96b0d17251Schristos goto again; 97b0d17251Schristos } 98b0d17251Schristos { 99b0d17251Schristos f(1, (unsigned long)2); /* no decl */ 100b0d17251Schristos x; 101b0d17251Schristos } 102b0d17251Schristos { 103b0d17251Schristos char *pass_str = get_passwd(opt_srv_secret, "x"); 104b0d17251Schristos 105b0d17251Schristos if (pass_str != NULL) { 106b0d17251Schristos cleanse(opt_srv_secret); 107b0d17251Schristos res = OSSL_CMP_CTX_set1_secretValue(ctx, (unsigned char *)pass_str, 108b0d17251Schristos strlen(pass_str)); 109b0d17251Schristos clear_free(pass_str); 110b0d17251Schristos } 111b0d17251Schristos } 112b0d17251Schristos } 113b0d17251Schristos 114b0d17251Schristos int g(void) 115b0d17251Schristos { 116b0d17251Schristos if (ctx == NULL) { /* non-leading end-of-line comment */ 117b0d17251Schristos if (/* comment after '(' */ pem_name != NULL /* comment before ')' */) 118b0d17251Schristos /* entire-line comment indent usually like for the following line */ 119b0d17251Schristos return NULL; /* hanging indent also for this line after comment */ 120b0d17251Schristos /* leading comment has same indentation as normal code */ stmt; 121b0d17251Schristos /* entire-line comment may have same indent as normal code */ 122b0d17251Schristos } 1234170684fSchristos for (i = 0; i < n; i++) 1244170684fSchristos for (; i < n; i++) 1254170684fSchristos for (i = 0; ; i++) 1264170684fSchristos for (i = 0;; i++) 1274170684fSchristos for (i = 0; i < n; ) 1284170684fSchristos for (i = 0; i < n;) 129b0d17251Schristos ; 130b0d17251Schristos for (i = 0; ; ) 1314170684fSchristos for (i = 0; ;) 1324170684fSchristos for (i = 0;; ) 1334170684fSchristos for (i = 0;;) 1344170684fSchristos for (; i < n; ) 1354170684fSchristos for (; j < n;) 1364170684fSchristos for (; ; i++) 1374170684fSchristos for (;; i++) 138b0d17251Schristos ; 1394170684fSchristos for (;;) /* the only variant allowed in case of "empty" for (...) */ 140b0d17251Schristos ; 141b0d17251Schristos for (;;) ; /* should not trigger: space before ';' */ 142b0d17251Schristos lab: ; /* should not trigger: space before ';' */ 143b0d17251Schristos 144b0d17251Schristos #if X 145b0d17251Schristos if (1) /* bad style: just part of control structure depends on #if */ 146b0d17251Schristos #else 147b0d17251Schristos if (2) /*@ resulting false positive */ 148b0d17251Schristos #endif 149b0d17251Schristos c; /*@ resulting false positive */ 150b0d17251Schristos 151b0d17251Schristos if (1) 152b0d17251Schristos if (2) 153b0d17251Schristos c; 154b0d17251Schristos else 155b0d17251Schristos e; 156b0d17251Schristos else 157b0d17251Schristos f; 158b0d17251Schristos do 159b0d17251Schristos do 160b0d17251Schristos 2; 161b0d17251Schristos while (1); 162b0d17251Schristos while (2); 163b0d17251Schristos 164b0d17251Schristos if (1) 165b0d17251Schristos f(a, b); 166b0d17251Schristos do 167b0d17251Schristos 1; while (2); /*@ more than one stmt just to construct case */ 168b0d17251Schristos if (1) 169b0d17251Schristos f(a, b); 170b0d17251Schristos else 171b0d17251Schristos do 172b0d17251Schristos 1; 173b0d17251Schristos while (2); 174b0d17251Schristos if (1) 175b0d17251Schristos f(a, b); 176b0d17251Schristos else do /*@ (non-brace) code before 'do' just to construct case */ 177b0d17251Schristos 1; 178b0d17251Schristos while (2); 179b0d17251Schristos f1234(a, 180b0d17251Schristos b); do /*@ (non-brace) code before 'do' just to construct case */ 181b0d17251Schristos 1; 182b0d17251Schristos while (2); 183b0d17251Schristos if (1) 184b0d17251Schristos f(a, 185b0d17251Schristos b); do /*@ (non-brace) code before 'do' just to construct case */ 186b0d17251Schristos 1; 187b0d17251Schristos while (2); 188b0d17251Schristos if (1) 189b0d17251Schristos f(a, b); 190b0d17251Schristos else 191b0d17251Schristos do f(c, c); /*@ (non-brace) code after 'do' just to construct case */ 192b0d17251Schristos while (2); 193b0d17251Schristos 194b0d17251Schristos if (1) 195b0d17251Schristos f(a, b); 196b0d17251Schristos else 197b0d17251Schristos return; 198b0d17251Schristos if (1) 199b0d17251Schristos f(a, 200b0d17251Schristos b); else /*@ (non-brace) code before 'else' just to construct case */ 201b0d17251Schristos do 202b0d17251Schristos 1; 203b0d17251Schristos while (2); 204b0d17251Schristos 205b0d17251Schristos if (1) 206b0d17251Schristos { /*@ brace after 'if' not on same line just to construct case */ 207b0d17251Schristos c; 208b0d17251Schristos d; 209b0d17251Schristos } 210b0d17251Schristos /* this comment is correctly indented if it refers to the following line */ 211b0d17251Schristos d; 212b0d17251Schristos 213b0d17251Schristos if (1) { 214b0d17251Schristos 2; 215b0d17251Schristos } else /*@ no brace after 'else' just to construct case */ 216b0d17251Schristos 3; 217b0d17251Schristos do { 218b0d17251Schristos } while (x); 219b0d17251Schristos if (1) { 220b0d17251Schristos 2; 221b0d17251Schristos } else { 222b0d17251Schristos 3; 223b0d17251Schristos } 224b0d17251Schristos if (4) 225b0d17251Schristos 5; 226b0d17251Schristos else 227b0d17251Schristos 6; 228b0d17251Schristos 229b0d17251Schristos if (1) { 230b0d17251Schristos if (2) { 231b0d17251Schristos case MAC_TYPE_MAC: 232b0d17251Schristos { 233b0d17251Schristos EVP_MAC_CTX *new_mac_ctx; 234b0d17251Schristos 235b0d17251Schristos if (ctx->pkey == NULL) 236b0d17251Schristos return 0; 237b0d17251Schristos } 238b0d17251Schristos break; 239b0d17251Schristos default: 240b0d17251Schristos /* This should be dead code */ 241b0d17251Schristos return 0; 242b0d17251Schristos } 243b0d17251Schristos } 244b0d17251Schristos if (expr_line1 245b0d17251Schristos == expr_line2 246b0d17251Schristos && expr_line3) { 247b0d17251Schristos c1; 248b0d17251Schristos } else { 249b0d17251Schristos c; 250b0d17251Schristos d; 251b0d17251Schristos } 252b0d17251Schristos if (expr_line1 253b0d17251Schristos == expr_line2 254b0d17251Schristos && expr_line3) 255b0d17251Schristos hanging_stmt; 256b0d17251Schristos } 2574170684fSchristos #define m \ 2584170684fSchristos do { /* should not be confused with function header followed by '{' */ \ 2594170684fSchristos } while (0) 260b0d17251Schristos 261b0d17251Schristos /* should not trigger: constant on LHS of comparison or assignment operator */ 262b0d17251Schristos X509 *x509 = NULL; 263b0d17251Schristos int y = a + 1 < b; 264b0d17251Schristos int ret, was_NULL = *certs == NULL; 265b0d17251Schristos 2664170684fSchristos /* should not trigger: missing space before ... */ 267b0d17251Schristos float z = 1e-6 * (-1) * b[+6] * 1e+1 * (a)->f * (long)+1 268b0d17251Schristos - (tmstart.tv_sec + tmstart.tv_nsec * 1e-9); 269b0d17251Schristos struct st = {-1, 0}; 2704170684fSchristos int x = (y <<= 1) + (z <= 5.0); 271b0d17251Schristos 272b0d17251Schristos const OPTIONS passwd_options[] = { 273b0d17251Schristos {"aixmd5", OPT_AIXMD5, '-', "AIX MD5-based password algorithm"}, 274b0d17251Schristos #if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0) 275b0d17251Schristos {"crypt", OPT_CRYPT, '-', "Standard Unix password algorithm (default)"}, 276b0d17251Schristos #endif 277b0d17251Schristos OPT_R_OPTIONS, 278b0d17251Schristos 279b0d17251Schristos {NULL} 280b0d17251Schristos }; 281b0d17251Schristos 282b0d17251Schristos typedef * d(int) 283b0d17251Schristos x; 284b0d17251Schristos typedef (int) 285b0d17251Schristos x; 286b0d17251Schristos typedef (int)*() 287b0d17251Schristos x; 288b0d17251Schristos typedef *int * 289b0d17251Schristos x; 290b0d17251Schristos typedef OSSL_CMP_MSG *(*cmp_srv_process_cb_t) 291b0d17251Schristos (OSSL_CMP_SRV_CTX *ctx, OSSL_CMP_MSG *msg) 292b0d17251Schristos xx; 293b0d17251Schristos 2944170684fSchristos #define IF(cond) if (cond) 2954170684fSchristos 2964170684fSchristos _Pragma("GCC diagnostic push") 2974170684fSchristos _Pragma("GCC diagnostic pop") 2984170684fSchristos 2994170684fSchristos #define CB_ERR_IF(cond, ctx, cert, depth, err) \ 3004170684fSchristos if ((cond) && ((depth) < 0 || verify_cb_cert(ctx, cert, depth, err) == 0)) \ 3014170684fSchristos return err 3024170684fSchristos static int verify_cb_crl(X509_STORE_CTX *ctx, int err) 3034170684fSchristos { 3044170684fSchristos ctx->error = err; 3054170684fSchristos return ctx->verify_cb(0, ctx); 3064170684fSchristos } 3074170684fSchristos 3084170684fSchristos #ifdef CMP_FALLBACK_EST 3094170684fSchristos # define CMP_FALLBACK_CERT_FILE "cert.pem" 3104170684fSchristos #endif 3114170684fSchristos 3124170684fSchristos #define X509_OBJECT_get0_X509(obj) \ 3134170684fSchristos ((obj) == NULL || (obj)->type != X509_LU_X509 ? NULL : (obj)->data.x509) 3144170684fSchristos #define X509_STORE_CTX_set_current_cert(ctx, x) { (ctx)->current_cert = (x); } 3154170684fSchristos #define X509_STORE_set_ex_data(ctx, idx, data) \ 3164170684fSchristos CRYPTO_set_ex_data(&(ctx)->ex_data, (idx), (data)) 3174170684fSchristos 3184170684fSchristos typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); 3194170684fSchristos #define X509_STORE_CTX_set_error_depth(ctx, depth) \ 3204170684fSchristos { (ctx)->error_depth = (depth); } 3214170684fSchristos #define EVP_PKEY_up_ref(x) ((x)->references++) 3224170684fSchristos /* should not report missing blank line: */ 3234170684fSchristos DECLARE_STACK_OF(OPENSSL_CSTRING) 3244170684fSchristos bool UTIL_iterate_dir(int (*fn)(const char *file, void *arg), void *arg, 3254170684fSchristos const char *path, bool recursive); 3264170684fSchristos size_t UTIL_url_encode( 3274170684fSchristos size_t *size_needed 3284170684fSchristos ); 3294170684fSchristos size_t UTIL_url_encode(const char *source, 3304170684fSchristos char *destination, 3314170684fSchristos size_t destination_len, 3324170684fSchristos size_t *size_needed); 3334170684fSchristos #error well. oops. 3344170684fSchristos 335b0d17251Schristos int f() 336b0d17251Schristos { 337b0d17251Schristos c; 338*97e3c585Schristos if (1) 339b0d17251Schristos c; 340b0d17251Schristos c; 341b0d17251Schristos if (1) 342b0d17251Schristos if (2) 343b0d17251Schristos { /*@ brace after 'if' not on same line just to construct case */ 344b0d17251Schristos c; 345b0d17251Schristos } 346b0d17251Schristos e; 347b0d17251Schristos const usign = { 348b0d17251Schristos 0xDF, 349b0d17251Schristos { 350b0d17251Schristos dd 351b0d17251Schristos }, 352b0d17251Schristos dd 353b0d17251Schristos }; 354b0d17251Schristos const unsign = { 355b0d17251Schristos 0xDF, { 356b0d17251Schristos dd 357b0d17251Schristos }, 358b0d17251Schristos dd 359b0d17251Schristos }; 360b0d17251Schristos } 361b0d17251Schristos const unsigned char trans_id[OSSL_CMP_TRANSACTIONID_LENGTH] = { 362b0d17251Schristos 0xDF, 363b0d17251Schristos }; 364b0d17251Schristos const unsigned char trans_id[OSSL_CMP_TRANSACTIONID_LENGTH] = 365b0d17251Schristos { 366b0d17251Schristos 0xDF, 367b0d17251Schristos }; 368b0d17251Schristos typedef 369b0d17251Schristos int 370b0d17251Schristos a; 371b0d17251Schristos 372b0d17251Schristos typedef 373b0d17251Schristos struct 374b0d17251Schristos { 375b0d17251Schristos int a; 376b0d17251Schristos } b; 377b0d17251Schristos typedef enum { 378b0d17251Schristos w = 0 379b0d17251Schristos } e_type; 380b0d17251Schristos typedef struct { 381b0d17251Schristos enum { 382b0d17251Schristos w = 0 383b0d17251Schristos } e_type; 384b0d17251Schristos enum { 385b0d17251Schristos w = 0 386b0d17251Schristos } e_type; 387b0d17251Schristos } e; 388b0d17251Schristos struct s_type { 389b0d17251Schristos enum e_type { 390b0d17251Schristos w = 0 391b0d17251Schristos }; 392b0d17251Schristos }; 393b0d17251Schristos struct s_type 394b0d17251Schristos { 395b0d17251Schristos enum e_type { 396b0d17251Schristos w = 0 397b0d17251Schristos }; 398b0d17251Schristos enum e2_type { 399b0d17251Schristos w = 0 400b0d17251Schristos }; 401b0d17251Schristos }; 402b0d17251Schristos 403b0d17251Schristos #define X 1 + 1 404b0d17251Schristos #define Y /* .. */ 2 + 2 405b0d17251Schristos #define Z 3 + 3 * (*a++) 406b0d17251Schristos 407b0d17251Schristos static varref cmp_vars[] = { /* comment. comment? comment! */ 408b0d17251Schristos {&opt_config}, {&opt_section}, 409b0d17251Schristos 410b0d17251Schristos {&opt_server}, {&opt_proxy}, {&opt_path}, 411b0d17251Schristos }; 412b0d17251Schristos 413b0d17251Schristos #define SWITCH(x) \ 414b0d17251Schristos switch (x) { \ 415b0d17251Schristos case 0: \ 416b0d17251Schristos break; \ 417b0d17251Schristos default: \ 418b0d17251Schristos break; \ 419b0d17251Schristos } 420b0d17251Schristos 421b0d17251Schristos #define DEFINE_SET_GET_BASE_TEST(PREFIX, SETN, GETN, DUP, FIELD, TYPE, ERR, \ 422b0d17251Schristos DEFAULT, NEW, FREE) \ 423b0d17251Schristos static int execute_CTX_##SETN##_##GETN##_##FIELD( \ 424b0d17251Schristos TEST_FIXTURE *fixture) \ 425b0d17251Schristos { \ 426b0d17251Schristos CTX *ctx = fixture->ctx; \ 427b0d17251Schristos int (*set_fn)(CTX *ctx, TYPE) = \ 428b0d17251Schristos (int (*)(CTX *ctx, TYPE))PREFIX##_##SETN##_##FIELD; \ 429b0d17251Schristos /* comment */ \ 430b0d17251Schristos } 431b0d17251Schristos 432b0d17251Schristos union un var; /* struct/union/enum in variable type */ 433b0d17251Schristos struct provider_store_st *f() /* struct/union/enum in function return type */ 434b0d17251Schristos { 435b0d17251Schristos } 436b0d17251Schristos static void f(struct pem_pass_data *data) /* struct/union/enum in arg list */ 437b0d17251Schristos { 438b0d17251Schristos } 439b0d17251Schristos 440b0d17251Schristos static void *fun(void) 441b0d17251Schristos { 442b0d17251Schristos if (pem_name != NULL) 443b0d17251Schristos /* comment */ 444b0d17251Schristos return NULL; 445b0d17251Schristos 446b0d17251Schristos label0: 447b0d17251Schristos label1: /* allow special indent 1 for label at outermost level in body */ 448b0d17251Schristos do { 449b0d17251Schristos label2: 450b0d17251Schristos size_t available_len, data_len; 451b0d17251Schristos const char *curr = txt, *next = txt; 452b0d17251Schristos char *tmp; 453b0d17251Schristos 454b0d17251Schristos { 455b0d17251Schristos label3: 456b0d17251Schristos } 457b0d17251Schristos } while (1); 458b0d17251Schristos 459b0d17251Schristos char *intraline_string_with_comment_delimiters_and_dbl_space = "1 /*1"; 460b0d17251Schristos char *multiline_string_with_comment_delimiters_and_dbl_space = "1 /*1\ 461b0d17251Schristos 2222222\'22222222222222222\"222222222" "33333 /*3333333333" "44 /*44444444444\ 462b0d17251Schristos 55555555555555\ 463b0d17251Schristos 6666"; 464b0d17251Schristos } 465b0d17251Schristos 466b0d17251Schristos ASN1_CHOICE(OSSL_CRMF_POPO) = { 467b0d17251Schristos ASN1_IMP(OSSL_CRMF_POPO, value.raVerified, ASN1_NULL, 0), 468b0d17251Schristos ASN1_EXP(OSSL_CRMF_POPO, value.keyAgreement, OSSL_CRMF_POPOPRIVKEY, 3) 469b0d17251Schristos } ASN1_CHOICE_END(OSSL_CRMF_POPO) 470b0d17251Schristos IMPLEMENT_ASN1_FUNCTIONS(OSSL_CRMF_POPO) 471b0d17251Schristos 472b0d17251Schristos ASN1_ADB(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) = { 473b0d17251Schristos ADB_ENTRY(NID_id_regCtrl_regToken, 474b0d17251Schristos ASN1_SIMPLE(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, 475b0d17251Schristos value.regToken, ASN1_UTF8STRING)), 476b0d17251Schristos } ASN1_ADB_END(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, 0, type, 0, 477b0d17251Schristos &attributetypeandvalue_default_tt, NULL); 478b0d17251Schristos 479b0d17251Schristos ASN1_ITEM_TEMPLATE(OSSL_CRMF_MSGS) = 480b0d17251Schristos ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, 481b0d17251Schristos OSSL_CRMF_MSGS, OSSL_CRMF_MSG) 482b0d17251Schristos ASN1_ITEM_TEMPLATE_END(OSSL_CRMF_MSGS) 483b0d17251Schristos 484b0d17251Schristos void f_looong_body_200() 485b0d17251Schristos { /* function body length up to 200 lines accepted */ 486b0d17251Schristos ; 487b0d17251Schristos ; 488b0d17251Schristos ; 489b0d17251Schristos ; 490b0d17251Schristos ; 491b0d17251Schristos ; 492b0d17251Schristos ; 493b0d17251Schristos ; 494b0d17251Schristos ; 495b0d17251Schristos ; 496b0d17251Schristos ; 497b0d17251Schristos ; 498b0d17251Schristos ; 499b0d17251Schristos ; 500b0d17251Schristos ; 501b0d17251Schristos ; 502b0d17251Schristos ; 503b0d17251Schristos ; 504b0d17251Schristos ; 505b0d17251Schristos ; 506b0d17251Schristos ; 507b0d17251Schristos ; 508b0d17251Schristos ; 509b0d17251Schristos ; 510b0d17251Schristos ; 511b0d17251Schristos ; 512b0d17251Schristos ; 513b0d17251Schristos ; 514b0d17251Schristos ; 515b0d17251Schristos ; 516b0d17251Schristos ; 517b0d17251Schristos ; 518b0d17251Schristos ; 519b0d17251Schristos ; 520b0d17251Schristos ; 521b0d17251Schristos ; 522b0d17251Schristos ; 523b0d17251Schristos ; 524b0d17251Schristos ; 525b0d17251Schristos ; 526b0d17251Schristos ; 527b0d17251Schristos ; 528b0d17251Schristos ; 529b0d17251Schristos ; 530b0d17251Schristos ; 531b0d17251Schristos ; 532b0d17251Schristos ; 533b0d17251Schristos ; 534b0d17251Schristos ; 535b0d17251Schristos ; 536b0d17251Schristos ; 537b0d17251Schristos ; 538b0d17251Schristos ; 539b0d17251Schristos ; 540b0d17251Schristos ; 541b0d17251Schristos ; 542b0d17251Schristos ; 543b0d17251Schristos ; 544b0d17251Schristos ; 545b0d17251Schristos ; 546b0d17251Schristos ; 547b0d17251Schristos ; 548b0d17251Schristos ; 549b0d17251Schristos ; 550b0d17251Schristos ; 551b0d17251Schristos ; 552b0d17251Schristos ; 553b0d17251Schristos ; 554b0d17251Schristos ; 555b0d17251Schristos ; 556b0d17251Schristos ; 557b0d17251Schristos ; 558b0d17251Schristos ; 559b0d17251Schristos ; 560b0d17251Schristos ; 561b0d17251Schristos ; 562b0d17251Schristos ; 563b0d17251Schristos ; 564b0d17251Schristos ; 565b0d17251Schristos ; 566b0d17251Schristos ; 567b0d17251Schristos ; 568b0d17251Schristos ; 569b0d17251Schristos ; 570b0d17251Schristos ; 571b0d17251Schristos ; 572b0d17251Schristos ; 573b0d17251Schristos ; 574b0d17251Schristos ; 575b0d17251Schristos ; 576b0d17251Schristos ; 577b0d17251Schristos ; 578b0d17251Schristos ; 579b0d17251Schristos ; 580b0d17251Schristos ; 581b0d17251Schristos ; 582b0d17251Schristos ; 583b0d17251Schristos ; 584b0d17251Schristos ; 585b0d17251Schristos ; 586b0d17251Schristos ; 587b0d17251Schristos ; 588b0d17251Schristos ; 589b0d17251Schristos ; 590b0d17251Schristos ; 591b0d17251Schristos ; 592b0d17251Schristos ; 593b0d17251Schristos ; 594b0d17251Schristos ; 595b0d17251Schristos ; 596b0d17251Schristos ; 597b0d17251Schristos ; 598b0d17251Schristos ; 599b0d17251Schristos ; 600b0d17251Schristos ; 601b0d17251Schristos ; 602b0d17251Schristos ; 603b0d17251Schristos ; 604b0d17251Schristos ; 605b0d17251Schristos ; 606b0d17251Schristos ; 607b0d17251Schristos ; 608b0d17251Schristos ; 609b0d17251Schristos ; 610b0d17251Schristos ; 611b0d17251Schristos ; 612b0d17251Schristos ; 613b0d17251Schristos ; 614b0d17251Schristos ; 615b0d17251Schristos ; 616b0d17251Schristos ; 617b0d17251Schristos ; 618b0d17251Schristos ; 619b0d17251Schristos ; 620b0d17251Schristos ; 621b0d17251Schristos ; 622b0d17251Schristos ; 623b0d17251Schristos ; 624b0d17251Schristos ; 625b0d17251Schristos ; 626b0d17251Schristos ; 627b0d17251Schristos ; 628b0d17251Schristos ; 629b0d17251Schristos ; 630b0d17251Schristos ; 631b0d17251Schristos ; 632b0d17251Schristos ; 633b0d17251Schristos ; 634b0d17251Schristos ; 635b0d17251Schristos ; 636b0d17251Schristos ; 637b0d17251Schristos ; 638b0d17251Schristos ; 639b0d17251Schristos ; 640b0d17251Schristos ; 641b0d17251Schristos ; 642b0d17251Schristos ; 643b0d17251Schristos ; 644b0d17251Schristos ; 645b0d17251Schristos ; 646b0d17251Schristos ; 647b0d17251Schristos ; 648b0d17251Schristos ; 649b0d17251Schristos ; 650b0d17251Schristos ; 651b0d17251Schristos ; 652b0d17251Schristos ; 653b0d17251Schristos ; 654b0d17251Schristos ; 655b0d17251Schristos ; 656b0d17251Schristos ; 657b0d17251Schristos ; 658b0d17251Schristos ; 659b0d17251Schristos ; 660b0d17251Schristos ; 661b0d17251Schristos ; 662b0d17251Schristos ; 663b0d17251Schristos ; 664b0d17251Schristos ; 665b0d17251Schristos ; 666b0d17251Schristos ; 667b0d17251Schristos ; 668b0d17251Schristos ; 669b0d17251Schristos ; 670b0d17251Schristos ; 671b0d17251Schristos ; 672b0d17251Schristos ; 673b0d17251Schristos ; 674b0d17251Schristos ; 675b0d17251Schristos ; 676b0d17251Schristos ; 677b0d17251Schristos ; 678b0d17251Schristos ; 679b0d17251Schristos ; 680b0d17251Schristos ; 681b0d17251Schristos ; 682b0d17251Schristos ; 683b0d17251Schristos ; 684b0d17251Schristos ; 685b0d17251Schristos ; 686b0d17251Schristos } 687b0d17251Schristos 688b0d17251Schristos void f_looong_body_201() 689b0d17251Schristos { /* function body length > 200 lines, but LONG BODY marker present */ 690b0d17251Schristos ; 691b0d17251Schristos ; 692b0d17251Schristos ; 693b0d17251Schristos ; 694b0d17251Schristos ; 695b0d17251Schristos ; 696b0d17251Schristos ; 697b0d17251Schristos ; 698b0d17251Schristos ; 699b0d17251Schristos ; 700b0d17251Schristos ; 701b0d17251Schristos ; 702b0d17251Schristos ; 703b0d17251Schristos ; 704b0d17251Schristos ; 705b0d17251Schristos ; 706b0d17251Schristos ; 707b0d17251Schristos ; 708b0d17251Schristos ; 709b0d17251Schristos ; 710b0d17251Schristos ; 711b0d17251Schristos ; 712b0d17251Schristos ; 713b0d17251Schristos ; 714b0d17251Schristos ; 715b0d17251Schristos ; 716b0d17251Schristos ; 717b0d17251Schristos ; 718b0d17251Schristos ; 719b0d17251Schristos ; 720b0d17251Schristos ; 721b0d17251Schristos ; 722b0d17251Schristos ; 723b0d17251Schristos ; 724b0d17251Schristos ; 725b0d17251Schristos ; 726b0d17251Schristos ; 727b0d17251Schristos ; 728b0d17251Schristos ; 729b0d17251Schristos ; 730b0d17251Schristos ; 731b0d17251Schristos ; 732b0d17251Schristos ; 733b0d17251Schristos ; 734b0d17251Schristos ; 735b0d17251Schristos ; 736b0d17251Schristos ; 737b0d17251Schristos ; 738b0d17251Schristos ; 739b0d17251Schristos ; 740b0d17251Schristos ; 741b0d17251Schristos ; 742b0d17251Schristos ; 743b0d17251Schristos ; 744b0d17251Schristos ; 745b0d17251Schristos ; 746b0d17251Schristos ; 747b0d17251Schristos ; 748b0d17251Schristos ; 749b0d17251Schristos ; 750b0d17251Schristos ; 751b0d17251Schristos ; 752b0d17251Schristos ; 753b0d17251Schristos ; 754b0d17251Schristos ; 755b0d17251Schristos ; 756b0d17251Schristos ; 757b0d17251Schristos ; 758b0d17251Schristos ; 759b0d17251Schristos ; 760b0d17251Schristos ; 761b0d17251Schristos ; 762b0d17251Schristos ; 763b0d17251Schristos ; 764b0d17251Schristos ; 765b0d17251Schristos ; 766b0d17251Schristos ; 767b0d17251Schristos ; 768b0d17251Schristos ; 769b0d17251Schristos ; 770b0d17251Schristos ; 771b0d17251Schristos ; 772b0d17251Schristos ; 773b0d17251Schristos ; 774b0d17251Schristos ; 775b0d17251Schristos ; 776b0d17251Schristos ; 777b0d17251Schristos ; 778b0d17251Schristos ; 779b0d17251Schristos ; 780b0d17251Schristos ; 781b0d17251Schristos ; 782b0d17251Schristos ; 783b0d17251Schristos ; 784b0d17251Schristos ; 785b0d17251Schristos ; 786b0d17251Schristos ; 787b0d17251Schristos ; 788b0d17251Schristos ; 789b0d17251Schristos ; 790b0d17251Schristos ; 791b0d17251Schristos ; 792b0d17251Schristos ; 793b0d17251Schristos ; 794b0d17251Schristos ; 795b0d17251Schristos ; 796b0d17251Schristos ; 797b0d17251Schristos ; 798b0d17251Schristos ; 799b0d17251Schristos ; 800b0d17251Schristos ; 801b0d17251Schristos ; 802b0d17251Schristos ; 803b0d17251Schristos ; 804b0d17251Schristos ; 805b0d17251Schristos ; 806b0d17251Schristos ; 807b0d17251Schristos ; 808b0d17251Schristos ; 809b0d17251Schristos ; 810b0d17251Schristos ; 811b0d17251Schristos ; 812b0d17251Schristos ; 813b0d17251Schristos ; 814b0d17251Schristos ; 815b0d17251Schristos ; 816b0d17251Schristos ; 817b0d17251Schristos ; 818b0d17251Schristos ; 819b0d17251Schristos ; 820b0d17251Schristos ; 821b0d17251Schristos ; 822b0d17251Schristos ; 823b0d17251Schristos ; 824b0d17251Schristos ; 825b0d17251Schristos ; 826b0d17251Schristos ; 827b0d17251Schristos ; 828b0d17251Schristos ; 829b0d17251Schristos ; 830b0d17251Schristos ; 831b0d17251Schristos ; 832b0d17251Schristos ; 833b0d17251Schristos ; 834b0d17251Schristos ; 835b0d17251Schristos ; 836b0d17251Schristos ; 837b0d17251Schristos ; 838b0d17251Schristos ; 839b0d17251Schristos ; 840b0d17251Schristos ; 841b0d17251Schristos ; 842b0d17251Schristos ; 843b0d17251Schristos ; 844b0d17251Schristos ; 845b0d17251Schristos ; 846b0d17251Schristos ; 847b0d17251Schristos ; 848b0d17251Schristos ; 849b0d17251Schristos ; 850b0d17251Schristos ; 851b0d17251Schristos ; 852b0d17251Schristos ; 853b0d17251Schristos ; 854b0d17251Schristos ; 855b0d17251Schristos ; 856b0d17251Schristos ; 857b0d17251Schristos ; 858b0d17251Schristos ; 859b0d17251Schristos ; 860b0d17251Schristos ; 861b0d17251Schristos ; 862b0d17251Schristos ; 863b0d17251Schristos ; 864b0d17251Schristos ; 865b0d17251Schristos ; 866b0d17251Schristos ; 867b0d17251Schristos ; 868b0d17251Schristos ; 869b0d17251Schristos ; 870b0d17251Schristos ; 871b0d17251Schristos ; 872b0d17251Schristos ; 873b0d17251Schristos ; 874b0d17251Schristos ; 875b0d17251Schristos ; 876b0d17251Schristos ; 877b0d17251Schristos ; 878b0d17251Schristos ; 879b0d17251Schristos ; 880b0d17251Schristos ; 881b0d17251Schristos ; 882b0d17251Schristos ; 883b0d17251Schristos ; 884b0d17251Schristos ; 885b0d17251Schristos ; 886b0d17251Schristos ; 887b0d17251Schristos ; 888b0d17251Schristos ; 889b0d17251Schristos ; 890b0d17251Schristos ; 891b0d17251Schristos ; 892b0d17251Schristos } 893