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