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-enable=B.REPORT.ECB 14-config=B.REPORT.ECB,output=join_paths(data_dir,"FRAME.@FRAME@.ecb") 15-config=B.REPORT.ECB,preprocessed=show 16-config=B.REPORT.ECB,macros=10 17 18-enable=B.EXPLAIN 19 20-doc_begin="These configurations serve the purpose of recognizing the 'mem*' macros as 21their Standard Library equivalents." 22 23-config=MC3A2.R21.14,call_select+= 24{"macro(^memcmp$)&&any_arg(1..2, skip(__non_syntactic_paren_cast_stmts, node(string_literal)))", 25 "any()", violation, "%{__callslct_any_base_fmt()}", {{arg, "%{__callslct_arg_fmt()}"}}} 26 27-config=MC3A2.R21.15,call_args+= 28{"macro(^mem(cmp|move|cpy)$)", {1, 2}, "unqual_pointee_compatible", 29 "%{__argscmpr_culprit_fmt()}", "%{__argscmpr_evidence_fmt()}"} 30 31-config=MC3A2.R21.16,call_select+= 32{"macro(^memcmp$)&&any_arg(1..2, skip(__non_syntactic_paren_stmts, type(canonical(__memcmp_pte_types))))", 33 "any()", violation, "%{__callslct_any_base_fmt()}", {{arg,"%{__callslct_arg_type_fmt()}"}}} 34 35-doc_end 36 37-eval_file=toolchain.ecl 38-eval_file=public_APIs.ecl 39 40-doc="Initially, there are no files tagged as adopted." 41-file_tag+={adopted,"none()"} 42 43# if(not(scheduled_analysis), 44# eval_file("adopted.ecl") 45# ) 46# if(not(scheduled_analysis), 47# eval_file("out_of_scope.ecl") 48# ) 49 50-eval_file=adopted.ecl 51-eval_file=out_of_scope.ecl 52 53-eval_file=deviations.ecl 54-eval_file=call_properties.ecl 55-eval_file=tagging.ecl 56-eval_file=concat(set,".ecl") 57 58-doc="Hide reports in external code." 59-reports+={hide,all_exp_external} 60