From 61a6098f2d43e9a2a1e5e57ae24fd15d2b53ffd5 Mon Sep 17 00:00:00 2001 From: Tomohiro Date: Tue, 7 Jul 2020 17:22:10 +0900 Subject: [PATCH] Limit number of error messages from gcc/clang backend (#14852) * Limit number of error messages from backend * Avoid duplication of -fmax-errors * make tests/misc/trunner.nim success --- config/nim.cfg | 16 +++++++++------- tests/misc/msizeof5.nim.cfg | 5 +++++ 2 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 tests/misc/msizeof5.nim.cfg diff --git a/config/nim.cfg b/config/nim.cfg index c888fcf89f..d8d3d4f8b1 100644 --- a/config/nim.cfg +++ b/config/nim.cfg @@ -167,17 +167,19 @@ path="$lib/pure" @end @end +gcc.maxerrorsimpl = "-fmax-errors=3" + @if macosx or freebsd or openbsd: cc = clang tlsEmulation:on - gcc.options.always = "-w" - gcc.cpp.options.always = "-w -fpermissive" + gcc.options.always %= "-w ${gcc.maxerrorsimpl}" + gcc.cpp.options.always %= "-w ${gcc.maxerrorsimpl} -fpermissive" @elif windows: - gcc.options.always = "-w -mno-ms-bitfields" - gcc.cpp.options.always = "-w -fpermissive -mno-ms-bitfields" + gcc.options.always %= "-w ${gcc.maxerrorsimpl} -mno-ms-bitfields" + gcc.cpp.options.always %= "-w ${gcc.maxerrorsimpl} -fpermissive -mno-ms-bitfields" @else: - gcc.options.always = "-w" - gcc.cpp.options.always = "-w -fpermissive" + gcc.options.always %= "-w ${gcc.maxerrorsimpl}" + gcc.cpp.options.always %= "-w ${gcc.maxerrorsimpl} -fpermissive" @end # Configuration for Objective-C compiler: @@ -245,7 +247,7 @@ llvm_gcc.options.size = "-Os" # Configuration for the LLVM CLang compiler: clang.options.debug = "-g" clang.cpp.options.debug = "-g" -clang.options.always = "-w" +clang.options.always = "-w -ferror-limit=3" clang.options.speed = "-O3" clang.options.size = "-Os" diff --git a/tests/misc/msizeof5.nim.cfg b/tests/misc/msizeof5.nim.cfg new file mode 100644 index 0000000000..dc0712a8c3 --- /dev/null +++ b/tests/misc/msizeof5.nim.cfg @@ -0,0 +1,5 @@ +# Do not limit number of error messages from backend compiler. +gcc.options.always %= "${gcc.options.always} -fmax-errors=100" +clang.options.always %= "${clang.options.always} -ferror-limit=100" +gcc.cpp.options.always %= "${gcc.cpp.options.always} -fmax-errors=100" +clang.cpp.options.always %= "${clang.cpp.options.always} -ferror-limit=100"