Cleanup attribute only works in C, not in C++
Environment
- OS and Version:
- Ubuntu 22.10 + GCC 11.3.0
- Ubuntu 22.10 + Clang 15.0.2
- macOS 13.0 + Clang 14.0.0
- VS Code Version: 1.74.0
- C/C++ Extension Version: v1.13.7
- Other extensions you installed (and if the issue persists after disabling them): none
- If using SSH remote, specify OS of remote machine: n/a
- A clear and concise description of what the bug is, including information about the workspace (i.e. is the workspace a single project or multiple projects, size of the project, etc).
The cleanup attribute works in C files but not in C++ files. The size of the workspace or project doesn't matter.
Bug Summary and Steps to Reproduce
Bug Summary:
__has_attribute(cleanup) always evaluates to false in .cc and .cpp files even though the same code works in a .c file.
Steps to reproduce:
- Create
foo.ccwith the following content:#if __has_attribute(cleanup) // ok #else #error "no cleanup attribute" #endif - See
#error directive: "no cleanup attribute" C/C++(35)
Expected behavior
No error squiggles in the editor. The code compiles fine.
Code sample and Logs
Code sample
#if __has_attribute(cleanup)
// ok
#else
#error "no cleanup attribute"
#endif
C/C++: Log Dialognostics
-------- Diagnostics - 12/12/2022, 2:54:19 PM
Version: 1.13.7
Current Configuration:
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu17",
"cppStandard": "gnu++17",
"intelliSenseMode": "linux-gcc-x64",
"intelliSenseModeIsExplicit": false,
"cStandardIsExplicit": false,
"cppStandardIsExplicit": false,
"mergeConfigurations": false,
"compilerPathIsExplicit": false,
"browse": {
"path": [
"${workspaceFolder}/**"
],
"limitSymbolsToIncludedHeaders": true
}
}
Translation Unit Mappings:
[ /home/jpnurmi/cleanup/foo.cc ]:
/home/jpnurmi/cleanup/foo.cc
Translation Unit Configurations:
[ /home/jpnurmi/cleanup/foo.cc ]:
Process ID: 2286
Memory Usage: 21 MB
Compiler Path: /usr/bin/gcc
Includes:
/usr/include/c++/11
/usr/include/x86_64-linux-gnu/c++/11
/usr/include/c++/11/backward
/usr/lib/gcc/x86_64-linux-gnu/11/include
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
Standard Version: c++17
IntelliSense Mode: linux-gcc-x64
Other Flags:
--g++
--gnu_version=110300
Total Memory Usage: 21 MB
------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 2522
Number of files parsed: 1
Language server logs
loggingLevel: Debug
cpptools/didChangeCppProperties
Code browsing service initialized
Attempting to get defaults from C++ compiler in "compilerPath" property: '/usr/bin/gcc'
Compiler query command line: /usr/bin/gcc -std=gnu++17 -m64 -Wp,-v -E -dM -x c++ /dev/null
Attempting to get defaults from C compiler in "compilerPath" property: '/usr/bin/gcc'
Compiler query command line: /usr/bin/gcc -std=gnu17 -m64 -Wp,-v -E -dM -x c /dev/null
Folder: /usr/include/ will be indexed
Folder: /usr/lib/gcc/x86_64-linux-gnu/11/include/ will be indexed
Folder: /usr/local/include/ will be indexed
Folder: /home/jpnurmi/cleanup/ will be indexed
textDocument/didOpen: /home/jpnurmi/cleanup/foo.cc
Discovering files...
Processing folder (recursive): /usr/include/
cpptools/didChangeSettings
Enhanced Colorization is enabled.
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
cpptools/textEditorSelectionChange
cpptools/activeDocumentChange: /home/jpnurmi/cleanup/foo.cc
sending compilation args for /home/jpnurmi/cleanup/foo.cc
include: /usr/include/c++/11
include: /usr/include/x86_64-linux-gnu/c++/11
include: /usr/include/c++/11/backward
include: /usr/lib/gcc/x86_64-linux-gnu/11/include
include: /usr/local/include
include: /usr/include/x86_64-linux-gnu
include: /usr/include
define: __SSP_STRONG__=3
define: __DBL_MIN_EXP__=(-1021)
define: __UINT_LEAST16_MAX__=0xffff
define: __ATOMIC_ACQUIRE=2
define: __FLT128_MAX_10_EXP__=4932
define: __FLT_MIN__=1.17549435082228750796873653722224568e-38F
define: __GCC_IEC_559_COMPLEX=2
define: __UINT_LEAST8_TYPE__=unsigned char
define: __SIZEOF_FLOAT80__=16
define: __INTMAX_C(c)=c ## L
define: __CHAR_BIT__=8
define: __UINT8_MAX__=0xff
define: __SCHAR_WIDTH__=8
define: __WINT_MAX__=0xffffffffU
define: __FLT32_MIN_EXP__=(-125)
define: __ORDER_LITTLE_ENDIAN__=1234
define: __SIZE_MAX__=0xffffffffffffffffUL
define: __WCHAR_MAX__=0x7fffffff
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1
define: __DBL_DENORM_MIN__=double(4.94065645841246544176568792868221372e-324L)
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1
define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
define: __GCC_IEC_559=2
define: __FLT32X_DECIMAL_DIG__=17
define: __FLT_EVAL_METHOD__=0
define: __FLT64_DECIMAL_DIG__=17
define: __CET__=3
define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
define: __UINT_FAST64_MAX__=0xffffffffffffffffUL
define: __SIG_ATOMIC_TYPE__=int
define: __DBL_MIN_10_EXP__=(-307)
define: __FINITE_MATH_ONLY__=0
define: __FLT32X_MAX_EXP__=1024
define: __FLT32_HAS_DENORM__=1
define: __UINT_FAST8_MAX__=0xff
define: __DEC64_MAX_EXP__=385
define: __INT8_C(c)=c
define: __INT_LEAST8_WIDTH__=8
define: __UINT_LEAST64_MAX__=0xffffffffffffffffUL
define: __INT_LEAST8_MAX__=0x7f
define: __SHRT_MAX__=0x7fff
define: __LDBL_MAX__=1.18973149535723176502126385303097021e+4932L
define: __FLT64X_MAX_10_EXP__=4932
define: __LDBL_IS_IEC_60559__=2
define: __FLT64X_HAS_QUIET_NAN__=1
define: __UINT_LEAST8_MAX__=0xff
define: __GCC_ATOMIC_BOOL_LOCK_FREE=2
define: __FLT128_DENORM_MIN__=6.47517511943802511092443895822764655e-4966F128
define: __UINTMAX_TYPE__=long unsigned int
define: __linux=1
define: __DEC32_EPSILON__=1E-6DF
define: __FLT_EVAL_METHOD_TS_18661_3__=0
define: __unix=1
define: __UINT32_MAX__=0xffffffffU
define: __GXX_EXPERIMENTAL_CXX0X__=1
define: __FLT128_MIN_EXP__=(-16381)
define: __WINT_MIN__=0U
define: __FLT128_MIN_10_EXP__=(-4931)
define: __FLT32X_IS_IEC_60559__=2
define: __INT_LEAST16_WIDTH__=16
define: __SCHAR_MAX__=0x7f
define: __FLT128_MANT_DIG__=113
define: __WCHAR_MIN__=(-__WCHAR_MAX__ - 1)
define: __INT64_C(c)=c ## L
define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
define: __FLT32X_MANT_DIG__=53
define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
define: __USER_LABEL_PREFIX__=
define: __FLT32_MAX_10_EXP__=38
define: __FLT64X_EPSILON__=1.08420217248550443400745280086994171e-19F64x
define: __STDC_HOSTED__=1
define: __DEC64_MIN_EXP__=(-382)
define: __DBL_DIG__=15
define: __FLT32_DIG__=6
define: __FLT_EPSILON__=1.19209289550781250000000000000000000e-7F
define: __GXX_WEAK__=1
define: __SHRT_WIDTH__=16
define: __FLT32_IS_IEC_60559__=2
define: __LDBL_MIN__=3.36210314311209350626267781732175260e-4932L
define: __DBL_IS_IEC_60559__=2
define: __DEC32_MAX__=9.999999E96DF
define: __FLT64X_DENORM_MIN__=3.64519953188247460252840593361941982e-4951F64x
define: __FLT32X_HAS_INFINITY__=1
define: __INT32_MAX__=0x7fffffff
define: __unix__=1
define: __INT_WIDTH__=32
define: __SIZEOF_LONG__=8
define: __STDC_IEC_559__=1
define: __STDC_ISO_10646__=201706L
define: __UINT16_C(c)=c
define: __DECIMAL_DIG__=21
define: __STDC_IEC_559_COMPLEX__=1
define: __FLT64_EPSILON__=2.22044604925031308084726333618164062e-16F64
define: __gnu_linux__=1
define: __INT16_MAX__=0x7fff
define: __FLT64_MIN_EXP__=(-1021)
define: __FLT64X_MIN_10_EXP__=(-4931)
define: __LDBL_HAS_QUIET_NAN__=1
define: __FLT64_MANT_DIG__=53
define: __FLT64X_MANT_DIG__=64
define: __GNUC__=11
define: __GXX_RTTI=1
define: __pie__=2
define: __MMX__=1
define: __FLT_HAS_DENORM__=1
define: __SIZEOF_LONG_DOUBLE__=16
define: __BIGGEST_ALIGNMENT__=16
define: __STDC_UTF_16__=1
define: __FLT64_MAX_10_EXP__=308
define: __FLT32_HAS_INFINITY__=1
define: __DBL_MAX__=double(1.79769313486231570814527423731704357e+308L)
define: __INT_FAST32_MAX__=0x7fffffffffffffffL
define: __DBL_HAS_INFINITY__=1
define: __SIZEOF_FLOAT__=4
define: __HAVE_SPECULATION_SAFE_VALUE=1
define: __DEC32_MIN_EXP__=(-94)
define: __INTPTR_WIDTH__=64
define: __FLT64X_HAS_INFINITY__=1
define: __UINT_LEAST32_MAX__=0xffffffffU
define: __FLT32X_HAS_DENORM__=1
define: __INT_FAST16_TYPE__=long int
define: __MMX_WITH_SSE__=1
define: __LDBL_HAS_DENORM__=1
define: __cplusplus=201703L
define: __DEC32_MIN__=1E-95DF
define: __DEPRECATED=1
define: __DBL_MAX_EXP__=1024
define: __WCHAR_WIDTH__=32
define: __FLT32_MAX__=3.40282346638528859811704183484516925e+38F32
define: __DEC128_EPSILON__=1E-33DL
define: __SSE2_MATH__=1
define: __ATOMIC_HLE_RELEASE=131072
define: __PTRDIFF_MAX__=0x7fffffffffffffffL
define: __amd64=1
define: __ATOMIC_HLE_ACQUIRE=65536
define: __GNUG__=11
define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
define: __SIZEOF_SIZE_T__=8
define: __FLT64X_MIN_EXP__=(-16381)
define: __SIZEOF_WINT_T__=4
define: __LONG_LONG_WIDTH__=64
define: __FLT32_MAX_EXP__=128
define: __GXX_ABI_VERSION=1016
define: __FLT128_HAS_INFINITY__=1
define: __FLT_MIN_EXP__=(-125)
define: __GCC_HAVE_DWARF2_CFI_ASM=1
define: __x86_64=1
define: __INT_FAST64_TYPE__=long int
define: __FLT64_DENORM_MIN__=4.94065645841246544176568792868221372e-324F64
define: __DBL_MIN__=double(2.22507385850720138309023271733240406e-308L)
define: __FLT128_EPSILON__=1.92592994438723585305597794258492732e-34F128
define: __FLT64X_NORM_MAX__=1.18973149535723176502126385303097021e+4932F64x
define: __SIZEOF_POINTER__=8
define: __LP64__=1
define: __DBL_HAS_QUIET_NAN__=1
define: __FLT32X_EPSILON__=2.22044604925031308084726333618164062e-16F32x
define: __DECIMAL_BID_FORMAT__=1
define: __FLT64_MIN_10_EXP__=(-307)
define: __FLT64X_DECIMAL_DIG__=21
define: __DEC128_MIN__=1E-6143DL
define: __REGISTER_PREFIX__=
define: __UINT16_MAX__=0xffff
define: __LDBL_HAS_INFINITY__=1
define: __FLT32_MIN__=1.17549435082228750796873653722224568e-38F32
define: __UINT8_TYPE__=unsigned char
define: __FLT_DIG__=6
define: __NO_INLINE__=1
define: __DEC_EVAL_METHOD__=2
define: __DEC128_MAX__=9.999999999999999999999999999999999E6144DL
define: __FLT_MANT_DIG__=24
define: __LDBL_DECIMAL_DIG__=21
define: __VERSION__="11.3.0"
define: __UINT64_C(c)=c ## UL
define: _STDC_PREDEF_H=1
define: __INT_LEAST32_MAX__=0x7fffffff
define: __GCC_ATOMIC_INT_LOCK_FREE=2
define: __FLT128_MAX_EXP__=16384
define: __FLT32_MANT_DIG__=24
define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __STDC_IEC_60559_COMPLEX__=201404L
define: __FLT128_HAS_DENORM__=1
define: __FLT32_DECIMAL_DIG__=9
define: __FLT128_DIG__=33
define: __INT32_C(c)=c
define: __DEC64_EPSILON__=1E-15DD
define: __ORDER_PDP_ENDIAN__=3412
define: __DEC128_MIN_EXP__=(-6142)
define: __INT_FAST32_TYPE__=long int
define: __UINT_LEAST16_TYPE__=short unsigned int
define: unix=1
define: __DBL_HAS_DENORM__=1
define: __SIZE_TYPE__=long unsigned int
define: __UINT64_MAX__=0xffffffffffffffffUL
define: __FLT_IS_IEC_60559__=2
define: __GNUC_WIDE_EXECUTION_CHARSET_NAME="UTF-32LE"
define: __FLT64X_DIG__=18
define: __INT8_TYPE__=signed char
define: __ELF__=1
define: __GCC_ASM_FLAG_OUTPUTS__=1
define: __UINT32_TYPE__=unsigned int
define: __FLT_RADIX__=2
define: __INT_LEAST16_TYPE__=short int
define: __LDBL_EPSILON__=1.08420217248550443400745280086994171e-19L
define: __UINTMAX_C(c)=c ## UL
define: __GLIBCXX_BITSIZE_INT_N_0=128
define: __k8=1
define: __FLT32X_MIN__=2.22507385850720138309023271733240406e-308F32x
define: __SIG_ATOMIC_MAX__=0x7fffffff
define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
define: __STDC_IEC_60559_BFP__=201404L
define: __SIZEOF_PTRDIFF_T__=8
define: __LDBL_DIG__=18
define: __FLT64_IS_IEC_60559__=2
define: __x86_64__=1
define: __FLT32X_MIN_EXP__=(-1021)
define: __DEC32_SUBNORMAL_MIN__=0.000001E-95DF
define: __INT_FAST16_MAX__=0x7fffffffffffffffL
define: __FLT64_DIG__=15
define: __UINT_FAST32_MAX__=0xffffffffffffffffUL
define: __UINT_LEAST64_TYPE__=long unsigned int
define: __FLT_HAS_QUIET_NAN__=1
define: __FLT_MAX_10_EXP__=38
define: __LONG_MAX__=0x7fffffffffffffffL
define: __FLT64X_HAS_DENORM__=1
define: __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL
define: __FLT_HAS_INFINITY__=1
define: __GNUC_EXECUTION_CHARSET_NAME="UTF-8"
define: __UINT_FAST16_TYPE__=long unsigned int
define: __DEC64_MAX__=9.999999999999999E384DD
define: __INT_FAST32_WIDTH__=64
define: __CHAR16_TYPE__=short unsigned int
define: __PRAGMA_REDEFINE_EXTNAME=1
define: __SIZE_WIDTH__=64
define: __SEG_FS=1
define: __INT_LEAST16_MAX__=0x7fff
define: __DEC64_MANT_DIG__=16
define: __INT64_MAX__=0x7fffffffffffffffL
define: __SEG_GS=1
define: __FLT32_DENORM_MIN__=1.40129846432481707092372958328991613e-45F32
define: __SIG_ATOMIC_WIDTH__=32
define: __INT_LEAST64_TYPE__=long int
define: __INT16_TYPE__=short int
define: __INT_LEAST8_TYPE__=signed char
define: __SIZEOF_INT__=4
define: __DEC32_MAX_EXP__=97
define: __INT_FAST8_MAX__=0x7f
define: __FLT128_MAX__=1.18973149535723176508575932662800702e+4932F128
define: __INTPTR_MAX__=0x7fffffffffffffffL
define: linux=1
define: __FLT64_HAS_QUIET_NAN__=1
define: __FLT32_MIN_10_EXP__=(-37)
define: __EXCEPTIONS=1
define: __PTRDIFF_WIDTH__=64
define: __LDBL_MANT_DIG__=64
define: __FLT64_HAS_INFINITY__=1
define: __FLT64X_MAX__=1.18973149535723176502126385303097021e+4932F64x
define: __STDCPP_DEFAULT_NEW_ALIGNMENT__=16
define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
define: __code_model_small__=1
define: __GCC_ATOMIC_LONG_LOCK_FREE=2
define: __DEC32_MANT_DIG__=7
define: __k8__=1
define: __INTPTR_TYPE__=long int
define: __UINT16_TYPE__=short unsigned int
define: __WCHAR_TYPE__=int
define: __pic__=2
define: __UINTPTR_MAX__=0xffffffffffffffffUL
define: __INT_FAST64_WIDTH__=64
define: __INT_FAST64_MAX__=0x7fffffffffffffffL
define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
define: __FLT_NORM_MAX__=3.40282346638528859811704183484516925e+38F
define: __FLT64X_MAX_EXP__=16384
define: __UINT_FAST64_TYPE__=long unsigned int
define: __INT_MAX__=0x7fffffff
define: __linux__=1
define: __INT64_TYPE__=long int
define: __FLT_MAX_EXP__=128
define: __ORDER_BIG_ENDIAN__=4321
define: __DBL_MANT_DIG__=53
define: __SIZEOF_FLOAT128__=16
define: __INT_LEAST64_MAX__=0x7fffffffffffffffL
define: __DEC64_MIN__=1E-383DD
define: __WINT_TYPE__=unsigned int
define: __UINT_LEAST32_TYPE__=unsigned int
define: __SIZEOF_SHORT__=2
define: __FLT32_NORM_MAX__=3.40282346638528859811704183484516925e+38F32
define: __SSE__=1
define: __LDBL_MIN_EXP__=(-16381)
define: __FLT64_MAX__=1.79769313486231570814527423731704357e+308F64
define: __amd64__=1
define: __WINT_WIDTH__=32
define: __INT_LEAST64_WIDTH__=64
define: __LDBL_MAX_EXP__=16384
define: __FLT32X_MAX_10_EXP__=308
define: __SIZEOF_INT128__=16
define: __FLT64X_IS_IEC_60559__=2
define: __LDBL_MAX_10_EXP__=4932
define: __ATOMIC_RELAXED=0
define: __DBL_EPSILON__=double(2.22044604925031308084726333618164062e-16L)
define: __FLT128_MIN__=3.36210314311209350626267781732175260e-4932F128
define: _LP64=1
define: __UINT8_C(c)=c
define: __FLT64_MAX_EXP__=1024
define: __INT_LEAST32_TYPE__=int
define: __SIZEOF_WCHAR_T__=4
define: __GNUC_PATCHLEVEL__=0
define: __FLT128_NORM_MAX__=1.18973149535723176508575932662800702e+4932F128
define: __FLT64_NORM_MAX__=1.79769313486231570814527423731704357e+308F64
define: __FLT128_HAS_QUIET_NAN__=1
define: __INTMAX_MAX__=0x7fffffffffffffffL
define: __INT_FAST8_TYPE__=signed char
define: __FLT64X_MIN__=3.36210314311209350626267781732175260e-4932F64x
define: __STDCPP_THREADS__=1
define: __GNUC_STDC_INLINE__=1
define: __FLT64_HAS_DENORM__=1
define: __FLT32_EPSILON__=1.19209289550781250000000000000000000e-7F32
define: __DBL_DECIMAL_DIG__=17
define: __STDC_UTF_32__=1
define: __INT_FAST8_WIDTH__=8
define: __FXSR__=1
define: __FLT32X_MAX__=1.79769313486231570814527423731704357e+308F32x
define: __DBL_NORM_MAX__=double(1.79769313486231570814527423731704357e+308L)
define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __INTMAX_WIDTH__=64
define: __UINT64_TYPE__=long unsigned int
define: __UINT32_C(c)=c ## U
define: __FLT_DENORM_MIN__=1.40129846432481707092372958328991613e-45F
define: __FLT128_IS_IEC_60559__=2
define: __INT8_MAX__=0x7f
define: __LONG_WIDTH__=64
define: __PIC__=2
define: __UINT_FAST32_TYPE__=long unsigned int
define: __FLT32X_NORM_MAX__=1.79769313486231570814527423731704357e+308F32x
define: __CHAR32_TYPE__=unsigned int
define: __FLT_MAX__=3.40282346638528859811704183484516925e+38F
define: __SSE2__=1
define: __INT32_TYPE__=int
define: __SIZEOF_DOUBLE__=8
define: __FLT_MIN_10_EXP__=(-37)
define: __FLT64_MIN__=2.22507385850720138309023271733240406e-308F64
define: __INT_LEAST32_WIDTH__=32
define: __INTMAX_TYPE__=long int
define: __DEC128_MAX_EXP__=6145
define: __FLT32X_HAS_QUIET_NAN__=1
define: __ATOMIC_CONSUME=1
define: __GNUC_MINOR__=3
define: __GLIBCXX_TYPE_INT_N_0=__int128
define: __INT_FAST16_WIDTH__=64
define: __UINTMAX_MAX__=0xffffffffffffffffUL
define: __PIE__=2
define: __FLT32X_DENORM_MIN__=4.94065645841246544176568792868221372e-324F32x
define: __DBL_MAX_10_EXP__=308
define: __LDBL_DENORM_MIN__=3.64519953188247460252840593361941982e-4951L
define: __INT16_C(c)=c
define: __STDC__=1
define: __FLT32X_DIG__=15
define: __PTRDIFF_TYPE__=long int
define: __ATOMIC_SEQ_CST=5
define: __FLT32X_MIN_10_EXP__=(-307)
define: __UINTPTR_TYPE__=long unsigned int
define: __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD
define: __DEC128_MANT_DIG__=34
define: __LDBL_MIN_10_EXP__=(-4931)
define: __SSE_MATH__=1
define: __SIZEOF_LONG_LONG__=8
define: __FLT128_DECIMAL_DIG__=36
define: __GCC_ATOMIC_LLONG_LOCK_FREE=2
define: __FLT32_HAS_QUIET_NAN__=1
define: __FLT_DECIMAL_DIG__=9
define: __UINT_FAST16_MAX__=0xffffffffffffffffUL
define: __LDBL_NORM_MAX__=1.18973149535723176502126385303097021e+4932L
define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
define: __UINT_FAST8_TYPE__=unsigned char
define: _GNU_SOURCE=1
define: __ATOMIC_ACQ_REL=4
define: __ATOMIC_RELEASE=3
other: --g++
other: --gnu_version=110300
stdver: c++17
intelliSenseMode: linux-gcc-x64
cpptools/getInlayHints: /home/jpnurmi/cleanup/foo.cc (id: 2)
Checking for syntax errors: /home/jpnurmi/cleanup/foo.cc
Queueing IntelliSense update for files in translation unit of: /home/jpnurmi/cleanup/foo.cc
Processing folder (recursive): /usr/lib/gcc/x86_64-linux-gnu/11/include/
Processing folder (recursive): /usr/local/include/
Processing folder (recursive): /home/jpnurmi/cleanup/
Discovering files: 2522 file(s) processed
0 file(s) removed from database
Done discovering files.
Populating include completion cache.
Parsing remaining files...
Parsing: 0 files(s) processed
Done parsing remaining files.
cpptools/getFoldingRanges: /home/jpnurmi/cleanup/foo.cc (id: 3)
cpptools/finishUpdateSquiggles
Error squiggle count: 1
Update IntelliSense time (sec): 0.261
cpptools/getSemanticTokens: /home/jpnurmi/cleanup/foo.cc (id: 4)
cpptools/getFoldingRanges: /home/jpnurmi/cleanup/foo.cc (id: 5)
cpptools/getDocumentSymbols: /home/jpnurmi/cleanup/foo.cc (id: 6)
cpptools/getDocumentSymbols
Screenshots

Additional context
No response
The issue manifests itself in C++ projects that use GLib, GTK, and friends with g_autofree and g_autoptr() cleanup macros.
#include <glib.h>
int main() {
g_autofree gchar* foo = g_strdup("bar");
g_autoptr(GError) error = NULL;
}

Hi @jpnurmi . Thanks for reporting this issue. The C/C++ Extension for VS Code shares the same IntelliSense implementation as VS. I'm able to repro this issue against VS as well, so I've opened an internal bug against VS (ID 1699068). Once it's fixed there, we should inherit the fix.
@Colengms is there any workaround you can recommend until the bug is fixed? Thanks and best regards
@Feichtmeier I don't know a workaround.
Any progress? How can we fix this?
Commenting here as well so that it will hopefully appear back on someone's radar. This is still and issue.
I sent a patch recommendation to the compiler vendor. Hopefully they will take some version of that and send us a patch we can include in a future update.