1-setq=set,getenv("SET") 2-project_name=getenv("ECLAIR_PROJECT_NAME") 3-project_root=getenv("ECLAIR_PROJECT_ROOT") 4 5setq(data_dir,getenv("ECLAIR_DATA_DIR")) 6setq(analysis_kind,getenv("ANALYSIS_KIND")) 7# setq(scheduled_analysis,nil) 8 9# strings_map("scheduled-analysis",500,"","^.*scheduled$",0,setq(scheduled_analysis,t)) 10# strings_map("scheduled-analysis",500,"","^.*$",0) 11# map_strings("scheduled-analysis",analysis_kind) 12 13-verbose 14 15-enable=B.REPORT.ECB 16-config=B.REPORT.ECB,output=join_paths(data_dir,"FRAME.@FRAME@.ecb") 17-config=B.REPORT.ECB,preprocessed=show 18-config=B.REPORT.ECB,macros=10 19 20-enable=B.EXPLAIN 21 22-doc_begin="These configurations serve the purpose of recognizing the 'mem*' macros as 23their Standard Library equivalents." 24 25-config=MC3R1.R21.14,call_select+= 26{"macro(^memcmp$)&&any_arg(1..2, skip(__non_syntactic_paren_cast_stmts, node(string_literal)))", 27 "any()", violation, "%{__callslct_any_base_fmt()}", {{arg, "%{__callslct_arg_fmt()}"}}} 28 29-config=MC3R1.R21.15,call_args+= 30{"macro(^mem(cmp|move|cpy)$)", {1, 2}, "unqual_pointee_compatible", 31 "%{__argscmpr_culprit_fmt()}", "%{__argscmpr_evidence_fmt()}"} 32 33-config=MC3R1.R21.16,call_select+= 34{"macro(^memcmp$)&&any_arg(1..2, skip(__non_syntactic_paren_stmts, type(canonical(__memcmp_pte_types))))", 35 "any()", violation, "%{__callslct_any_base_fmt()}", {{arg,"%{__callslct_arg_type_fmt()}"}}} 36 37-doc_end 38 39-eval_file=toolchain.ecl 40-eval_file=public_APIs.ecl 41 42-doc="Initially, there are no files tagged as adopted." 43-file_tag+={adopted,"none()"} 44 45# if(not(scheduled_analysis), 46# eval_file("adopted.ecl") 47# ) 48# if(not(scheduled_analysis), 49# eval_file("out_of_scope.ecl") 50# ) 51 52-eval_file=adopted.ecl 53-eval_file=out_of_scope.ecl 54 55-eval_file=B.UNEVALEFF.ecl 56-eval_file=deviations.ecl 57-eval_file=call_properties.ecl 58-eval_file=tagging.ecl 59-eval_file=concat(set,".ecl") 60 61-doc="Hide reports in external code." 62-reports+={hide,all_exp_external} 63