# Disable some rules on some files
-sonar.issue.ignore.multicriteria=j1,j2,j3,j4,j5,jni1,jni2,c1,c2a,c2b,c3,c5a,c5b,c6a,c6b,c7,c8a,c8b,c9,c10a,c10b,c10c,cex1a,cex1b,cex2,cex3,cex4,f1,p1,s1,s2,s3,s4,s5
+sonar.issue.ignore.multicriteria=j1,j2,j3,j4,j5,jni1,jni2,c1,c2a,c2b,c3,c4,c5a,c5b,c6a,c6b,c7,c8a,c8b,c9,c10a,c10b,c10c,cex1a,cex1b,cex2a,cex2b,cex3,cex4,f1,p1,s1,s2,s3,s4,s5
# The Object.finalize() method should not be overridden
# But we need to clean the native memory with JNI
sonar.issue.ignore.multicriteria.c3.ruleKey=c:PPMacroName
sonar.issue.ignore.multicriteria.c3.resourceKey=include/smpi/smpi_extended_traces.h
+# Concise syntax should be used for concatenatable namespaces
+# This is C++17, and we still support C++14
+sonar.issue.ignore.multicriteria.c4.ruleKey=cpp:S5812
+sonar.issue.ignore.multicriteria.c4.resourceKey=**/*
+
# Replace alternative operator "not" with "!"
# I like it better, so please leave me alone
sonar.issue.ignore.multicriteria.c5a.ruleKey=cpp:S3659
# Functions which do not return should be declared as "noreturn"
# But examples are intended to remain small and simple
-sonar.issue.ignore.multicriteria.cex2.ruleKey=c:S5271
-sonar.issue.ignore.multicriteria.cex2.resourceKey=examples/**/*.c
+sonar.issue.ignore.multicriteria.cex2a.ruleKey=c:S5271
+sonar.issue.ignore.multicriteria.cex2a.resourceKey=examples/**/*.c
+sonar.issue.ignore.multicriteria.cex2b.ruleKey=cpp:S5271
+sonar.issue.ignore.multicriteria.cex2b.resourceKey=examples/**/*.cpp
# Unused function parameters should be removed, but not in examples
sonar.issue.ignore.multicriteria.cex3.ruleKey=c:S1172
# - Collectives that we borrowed elsewhere (mpich, openMPI and other implems)
# - the NAS, that are included in our examples
# - The Catch2 library, that is included in our unit tests
+# - The xxHash library, used by the MC
# - MSG along with its examples and teshsuite, and the simdag examples
-sonar.exclusions=src/include/catch.hpp,src/*_unit.c*,teshsuite/smpi/mpich3-test/**,teshsuite/smpi/isp/**,**/*_dtd.c,**/*_dtd.h,**/*yy.c,src/xbt/automaton/parserPromela.tab.*,src/smpi/colls/**/*,examples/smpi/NAS/*,examples/smpi/gemm/gemm.c,src/msg/**,include/msg/**,examples/deprecated/**,teshsuite/msg/**
+sonar.exclusions=src/include/catch.hpp,src/include/xxhash.hpp,src/*_unit.c*,teshsuite/smpi/mpich3-test/**,teshsuite/smpi/isp/**,**/*_dtd.c,**/*_dtd.h,**/*yy.c,src/xbt/automaton/parserPromela.tab.*,src/smpi/colls/**/*,examples/smpi/NAS/*,examples/smpi/gemm/gemm.c,src/msg/**,include/msg/**,examples/deprecated/**,teshsuite/msg/**
# Exclude our examples from the duplication detection.
# Examples are expected to be somehow repetitive