[Qt-creator] Clang-Tidy and Clazy analyzer using '-D__cplusplus=199711L'

Tyson Wiser twiser.public at gmail.com
Thu Aug 9 14:35:47 CEST 2018


First of all, thank you for creating and maintaining this great IDE. It has
been a great tool.

More details follow, but in a nutshell, I'm having trouble using the
'Clang-Tidy and Clazy...' analyzers in Qt Creator 4.7 on CentOS 7. It
appears that it is incorrectly defining __cplusplus, which causes multiple
errors. Is there a way to find out why that is and how to change it? It is
also trying to use the C++17 standard. Is there a way to change that to
C++11?

I run Qt Creator on a CentOS 7 Linux box. My projects are makefile-based
(no CMake, QMake, or QBS), but I have the appropriate paths in my
<project>.includes file so that the code completion, etc. all work as
expected. I recently upgraded from 4.6.1 to 4.7. In 4.6.1 I did not use the
clang-tidy checks as I found them to be too slow. I'm trying them again in
4.7 and they seem to be faster. However, they do not seem to check every
file. In looking at the command line used to launch the tools (from the
Issues window), I notice the following.

1. The '-std=c++17' option is included.
2. Later on, there is a '-D__cplusplus=199711L' included as well.

I believe that the combination of the two points above (especially #2) are
causing the tools to fail early.

So here are my questions. First, how do I find out why __cplusplus is being
defined to an old standard and how do I change it? Second, is it possible
to change it so that the tools use '-std=c++11" instead of '-std=c++17'?

In case it is helpful, the command line the IDE used is included below
(I've replaced some irrelevant sections with <description>). Thanks in
advance for any help you may be able to provide.

-Tyson

:-1: warning: Command line:
/home/twiser/programs/qtcreator-4.7.0/libexec/qtcreator/clang/bin/clang-6.0
-fsyntax-only -serialize-diagnostics
/tmp/QtCreator-UPSeGv/clangtools-dTWDOt/report-NavConnectionSerial.cpp-BFnMCN
-Wno-unknown-pragmas -Wno-unknown-warning-option
-Wno-documentation-unknown-command -Xclang -add-plugin -Xclang clang-tidy
-Xclang -plugin-arg-clang-tidy -Xclang
'-checks=-*,bugprone-*,cppcoreguidelines-c-copy-assignment-signature,cppcoreguidelines-interfaces-global-init,cppcoreguidelines-no-malloc,cppcoreguidelines-pro-bounds-constant-array-index,cppcoreguidelines-pro-bounds-pointer-arithmetic,cppcoreguidelines-pro-type-const-cast,cppcoreguidelines-pro-type-cstyle-cast,cppcoreguidelines-pro-type-member-init,cppcoreguidelines-pro-type-static-cast-downcast,cppcoreguidelines-pro-type-union-access,cppcoreguidelines-slicing,cppcoreguidelines-special-member-functions,misc-*,modernize-*,performance-*,readability-avoid-const-params-in-decls,readability-container-size-empty,readability-delete-null-pointer,readability-deleted-default,readability-else-after-return,readability-function-size,readability-identifier-naming,readability-inconsistent-declaration-parameter-name,readability-misleading-indentation,readability-misplaced-array-index,readability-non-const-parameter,readability-redundant-*,readability-simplify-boolean-expr,readability-static-*,readability-uniqueptr-delete-release'
-Xclang -add-plugin -Xclang clang-lazy -Xclang -plugin-arg-clang-lazy
-Xclang enable-all-fixits -Xclang -plugin-arg-clang-lazy -Xclang
no-autowrite-fixits -Xclang -plugin-arg-clang-lazy -Xclang level0 -m64
-target x86_64-redhat-linux -x c++ -std=c++17 -fcxx-exceptions -fexceptions
'-D__DBL_MIN_EXP__=(-1021)' -D__UINT_LEAST16_MAX__=65535
-D__ATOMIC_ACQUIRE=2 -D__FLT_MIN__=1.17549435082228750797e-38F
'-D__UINT_LEAST8_TYPE__=unsigned char' '-D__INTMAX_C(c)=c ##L'
-D__CHAR_BIT__=8 -D__UINT8_MAX__=255 -D__WINT_MAX__=4294967295U
-D__ORDER_LITTLE_ENDIAN__=1234 -D__SIZE_MAX__=18446744073709551615UL
-D__WCHAR_MAX__=2147483647 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1
-D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
'-D__DBL_DENORM_MIN__=double(4.94065645841246544177e-324L)'
-D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 -D__GCC_ATOMIC_CHAR_LOCK_FREE=2
-D__FLT_EVAL_METHOD__=0 -D__unix__ -D__GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
-D__x86_64 -D__UINT_FAST64_MAX__=18446744073709551615UL
-D__SIG_ATOMIC_TYPE__=int '-D__DBL_MIN_10_EXP__=(-307)'
-D__FINITE_MATH_ONLY__=0 -D__GNUC_PATCHLEVEL__=5 -D__UINT_FAST8_MAX__=255
-D__DEC64_MAX_EXP__=385 '-D__INT8_C(c)=c'
-D__UINT_LEAST64_MAX__=18446744073709551615UL -D__SHRT_MAX__=32767
-D__LDBL_MAX__=1.18973149535723176502e+4932L -D__UINT_LEAST8_MAX__=255
-D__GCC_ATOMIC_BOOL_LOCK_FREE=2 '-D__UINTMAX_TYPE__=long unsigned int'
-D__linux -D__DEC32_EPSILON__=1E-6DF -D__unix -D__UINT32_MAX__=4294967295U
-D__LDBL_MAX_EXP__=16384 -D__WINT_MIN__=0U -D__linux__ -D__SCHAR_MAX__=127
'-D__WCHAR_MIN__=(-__WCHAR_MAX__ - 1)' '-D__INT64_C(c)=c ##L'
-D__DBL_DIG__=15 -D__GCC_ATOMIC_POINTER_LOCK_FREE=2 -D__SIZEOF_INT__=4
-D__SIZEOF_POINTER__=8 -D__GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
-D__USER_LABEL_PREFIX__= -D__STDC_HOSTED__ -D__LDBL_HAS_INFINITY__
-D__FLT_EPSILON__=1.19209289550781250000e-7F -D__GXX_WEAK__
-D__LDBL_MIN__=3.36210314311209350626e-4932L -D__DEC32_MAX__=9.999999E96DF
-D__INT32_MAX__=2147483647 -D__SIZEOF_LONG__=8 -D__STDC_IEC_559__
-D__STDC_ISO_10646__=201103L '-D__UINT16_C(c)=c' -D__DECIMAL_DIG__=21
-D__gnu_linux__ -D__LDBL_HAS_QUIET_NAN__ -D__GNUC__=4 -D__GXX_RTTI
-D__MMX__ -D__FLT_HAS_DENORM__ -D__SIZEOF_LONG_DOUBLE__=16
-D__BIGGEST_ALIGNMENT__=16
'-D__DBL_MAX__=double(1.79769313486231570815e+308L)'
-D__INT_FAST32_MAX__=9223372036854775807L -D__DBL_HAS_INFINITY__
-D__INT64_MAX__=9223372036854775807L '-D__DEC32_MIN_EXP__=(-94)'
'-D__INT_FAST16_TYPE__=long int' -D__LDBL_HAS_DENORM__
-D__cplusplus=199711L
-D__DEC128_MAX__=9.999999999999999999999999999999999E6144DL
-D__INT_LEAST32_MAX__=2147483647 -D__DEC32_MIN__=1E-95DF -D__DEPRECATED
-D__DBL_MAX_EXP__=1024 -D__DEC128_EPSILON__=1E-33DL -D__SSE2_MATH__
-D__ATOMIC_HLE_RELEASE=131072 -D__PTRDIFF_MAX__=9223372036854775807L
-D__amd64 -D__STDC_NO_THREADS__ -D__ATOMIC_HLE_ACQUIRE=65536 -D__GNUG__=4
-D__LONG_LONG_MAX__=9223372036854775807LL -D__SIZEOF_SIZE_T__=8
-D__SIZEOF_WINT_T__=4 -D__GCC_HAVE_DWARF2_CFI_ASM -D__GXX_ABI_VERSION=1002
'-D__FLT_MIN_EXP__=(-125)' '-D__INT_FAST64_TYPE__=long int'
'-D__DBL_MIN__=double(2.22507385850720138309e-308L)' -D__LP64__
-D__DECIMAL_BID_FORMAT__ -D__DEC128_MIN__=1E-6143DL -D__REGISTER_PREFIX__=
-D__UINT16_MAX__=65535 -D__DBL_HAS_DENORM__ '-D__UINT8_TYPE__=unsigned
char' -D__NO_INLINE__ -D__FLT_MANT_DIG__=24 '-D__VERSION__="4.8.5 20150623
(Red Hat 4.8.5-28)"' '-D__UINT64_C(c)=c ##UL' -D_STDC_PREDEF_H
-D__GCC_ATOMIC_INT_LOCK_FREE=2
-D__FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__ -D__STDC_IEC_559_COMPLEX__
'-D__INT32_C(c)=c' -D__DEC64_EPSILON__=1E-15DD -D__ORDER_PDP_ENDIAN__=3412
'-D__DEC128_MIN_EXP__=(-6142)' '-D__INT_FAST32_TYPE__=long int'
'-D__UINT_LEAST16_TYPE__=short unsigned int' -Dunix -D__INT16_MAX__=32767
'-D__SIZE_TYPE__=long unsigned int' -D__UINT64_MAX__=18446744073709551615UL
'-D__INT8_TYPE__=signed char' -D__ELF__ -D__FLT_RADIX__=2
'-D__INT_LEAST16_TYPE__=short int'
-D__LDBL_EPSILON__=1.08420217248550443401e-19L '-D__UINTMAX_C(c)=c ##UL'
-D__GNUC_RH_RELEASE__=28 -D__k8 -D__SIG_ATOMIC_MAX__=2147483647
-D__GCC_ATOMIC_WCHAR_T_LOCK_FREE=2 -D__SIZEOF_PTRDIFF_T__=8 -D__x86_64__
-D__DEC32_SUBNORMAL_MIN__=0.000001E-95DF
-D__INT_FAST16_MAX__=9223372036854775807L
-D__UINT_FAST32_MAX__=18446744073709551615UL '-D__UINT_LEAST64_TYPE__=long
unsigned int' -D__FLT_HAS_QUIET_NAN__ -D__FLT_MAX_10_EXP__=38
-D__LONG_MAX__=9223372036854775807L
-D__DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL
-D__FLT_HAS_INFINITY__ '-D__UINT_FAST16_TYPE__=long unsigned int'
-D__DEC64_MAX__=9.999999999999999E384DD '-D__CHAR16_TYPE__=short unsigned
int' -D__PRAGMA_REDEFINE_EXTNAME -D__INT_LEAST16_MAX__=32767
-D__DEC64_MANT_DIG__=16 -D__UINT_LEAST32_MAX__=4294967295U
-D__GCC_ATOMIC_LONG_LOCK_FREE=2 '-D__INT_LEAST64_TYPE__=long int'
'-D__INT16_TYPE__=short int' '-D__INT_LEAST8_TYPE__=signed char'
-D__DEC32_MAX_EXP__=97 -D__INT_FAST8_MAX__=127
-D__INTPTR_MAX__=9223372036854775807L -Dlinux -D__SSE2__ -D__EXCEPTIONS
-D__LDBL_MANT_DIG__=64 -D__DBL_HAS_QUIET_NAN__
'-D__SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)' -D__code_model_small__
-D__k8__ '-D__INTPTR_TYPE__=long int' '-D__UINT16_TYPE__=short unsigned
int' -D__WCHAR_TYPE__=int -D__SIZEOF_FLOAT__=4
-D__UINTPTR_MAX__=18446744073709551615UL '-D__DEC64_MIN_EXP__=(-382)'
-D__INT_FAST64_MAX__=9223372036854775807L
-D__GCC_ATOMIC_TEST_AND_SET_TRUEVAL -D__FLT_DIG__=6
'-D__UINT_FAST64_TYPE__=long unsigned int' -D__INT_MAX__=2147483647
-D__amd64__ '-D__INT64_TYPE__=long int' -D__FLT_MAX_EXP__=128
-D__ORDER_BIG_ENDIAN__=4321 -D__DBL_MANT_DIG__=53
-D__INT_LEAST64_MAX__=9223372036854775807L -D__DEC64_MIN__=1E-383DD
'-D__WINT_TYPE__=unsigned int' '-D__UINT_LEAST32_TYPE__=unsigned int'
-D__SIZEOF_SHORT__=2 -D__SSE__ '-D__LDBL_MIN_EXP__=(-16381)'
-D__INT_LEAST8_MAX__=127 -D__SIZEOF_INT128__=16 -D__LDBL_MAX_10_EXP__=4932
-D__ATOMIC_RELAXED=0
'-D__DBL_EPSILON__=double(2.22044604925031308085e-16L)' -D_LP64
'-D__UINT8_C(c)=c' -D__INT_LEAST32_TYPE__=int -D__SIZEOF_WCHAR_T__=4
'-D__UINT64_TYPE__=long unsigned int' '-D__INT_FAST8_TYPE__=signed char'
-D__DBL_DECIMAL_DIG__=17 -D__FXSR__ -D__DEC_EVAL_METHOD__=2
'-D__UINT32_C(c)=c ##U' -D__INTMAX_MAX__=9223372036854775807L
-D__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
-D__FLT_DENORM_MIN__=1.40129846432481707092e-45F -D__INT8_MAX__=127
'-D__UINT_FAST32_TYPE__=long unsigned int' '-D__CHAR32_TYPE__=unsigned int'
-D__FLT_MAX__=3.40282346638528859812e+38F -D__INT32_TYPE__=int
-D__SIZEOF_DOUBLE__=8 '-D__INTMAX_TYPE__=long int'
-D__DEC128_MAX_EXP__=6145 -D__ATOMIC_CONSUME -D__GNUC_MINOR__=8
-D__UINTMAX_MAX__=18446744073709551615UL -D__DEC32_MANT_DIG__=7
-D__DBL_MAX_10_EXP__=308
-D__LDBL_DENORM_MIN__=3.64519953188247460253e-4951L '-D__INT16_C(c)=c'
-D__STDC__ '-D__PTRDIFF_TYPE__=long int' -D__ATOMIC_SEQ_CST=5
'-D__UINT32_TYPE__=unsigned int' '-D__UINTPTR_TYPE__=long unsigned int'
-D__DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD -D__DEC128_MANT_DIG__=34
'-D__LDBL_MIN_10_EXP__=(-4931)' -D__SSE_MATH__ -D__SIZEOF_LONG_LONG__=8
-D__GCC_ATOMIC_LLONG_LOCK_FREE=2 -D__LDBL_DIG__=18 -D__FLT_DECIMAL_DIG__=9
-D__UINT_FAST16_MAX__=18446744073709551615UL -D__GNUC_GNU_INLINE__
'-D__FLT_MIN_10_EXP__=(-37)' -D__GCC_ATOMIC_SHORT_LOCK_FREE=2
'-D__UINT_FAST8_TYPE__=unsigned char' -D_GNU_SOURCE -D__ATOMIC_ACQ_REL=4
-D__ATOMIC_RELEASE=3 -nostdinc -nostdlibinc -undef -isystem
/home/twiser/programs/qtcreator-4.7.0/libexec/qtcreator/clang/lib/clang/6.0.1/include
<list-of-project-include-paths> -I /usr/include/c++/4.8.2 -I
/usr/include/c++/4.8.2/x86_64-redhat-linux -I
/usr/include/c++/4.8.2/backward -I
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/include -I /usr/local/include -I
/usr/include -include <project>.config <source-file>.cpp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qt-creator/attachments/20180809/4326ddcf/attachment.html>


More information about the Qt-creator mailing list