vscode-cpptools
vscode-cpptools copied to clipboard
Range v3 ranges::views::addressof breaks code highlighting
Environment
- OS and Version: Manjaro 21.3.7
- VS Code Version: Version: 1.71.0 Commit: 784b0177c56c607789f9638da7b6bf3230d47a8c Date: 2022-09-01T07:25:10.472Z Electron: 19.0.12 Chromium: 102.0.5005.167 Node.js: 16.14.2 V8: 10.2.154.15-electron.0 OS: Linux x64 5.19.1-3-MANJARO Sandboxed: No
- C/C++ Extension Version: 1.12.4
Bug Summary and Steps to Reproduce
The following code disables semantic highlighting:
#include <boost/geometry/core/cs.hpp>
#include <boost/geometry/geometries/point.hpp>
#include <boost/geometry/geometries/polygon.hpp>
#include <range/v3/view/addressof.hpp>
#include <range/v3/view/remove_if.hpp>
namespace bg = boost::geometry;
namespace rs = ranges;
namespace rv = ranges::views;
using Point = bg::model::point<double, 2, bg::cs::cartesian>;
using Polygon = bg::model::polygon<Point, false, false>;
int main(int argc, char* argv[]) {
auto p2 = Polygon{};
auto p2_filtered_holes = p2.inners() | rv::remove_if([&](auto) {
return false;
});
rv::addressof(p2_filtered_holes);
}

If I comment out the last line, it looks like this:

Expected behavior
IntelliSense doesn't crash.
Code sample and Logs
c_cpp_properties.json:
{
"configurations": [
{
"name": "Debug-gcc",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/home/user/gcc-env/bin/g++",
"cStandard": "gnu17",
"cppStandard": "gnu++20",
"intelliSenseMode": "linux-gcc-x64",
"compileCommands": "${workspaceFolder}/build/debug/compile_commands.json"
},
{
"name": "Release-gcc",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/home/user/gcc-env/bin/g++",
"cStandard": "gnu17",
"cppStandard": "gnu++20",
"intelliSenseMode": "linux-gcc-x64",
"compileCommands": "${workspaceFolder}/build/release/compile_commands.json"
},
{
"name": "DebugOptimized-gcc",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/home/user/gcc-env/bin/g++",
"cStandard": "gnu17",
"cppStandard": "gnu++20",
"intelliSenseMode": "linux-gcc-x64",
"compileCommands": "${workspaceFolder}/build/debugoptimized/compile_commands.json"
},
{
"name": "Debug-clang",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/home/user/clang-env/bin/clang++",
"cStandard": "gnu17",
"cppStandard": "gnu++20",
"intelliSenseMode": "linux-clang-x64",
"compileCommands": "${workspaceFolder}/build/debug/compile_commands.json"
},
{
"name": "Release-clang",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/home/user/clang-env/bin/clang++",
"cStandard": "gnu17",
"cppStandard": "gnu++20",
"intelliSenseMode": "linux-clang-x64",
"compileCommands": "${workspaceFolder}/build/release/compile_commands.json"
},
{
"name": "DebugOptimized-clang",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/home/user/clang-env/bin/clang++",
"cStandard": "gnu17",
"cppStandard": "gnu++20",
"intelliSenseMode": "linux-clang-x64",
"compileCommands": "${workspaceFolder}/build/debugoptimized/compile_commands.json"
},
{
"name": "Debug",
"compileCommands": "${workspaceFolder}/build/debug/compile_commands.json"
},
{
"name": "Release",
"compileCommands": "${workspaceFolder}/build/release/compile_commands.json"
},
{
"name": "DebugOptimized",
"compileCommands": "${workspaceFolder}/build/debugoptimized/compile_commands.json"
}
],
"version": 4
}
C/C++: Log Diagnostics
-------- Diagnostics - 09.09.2022, 17:37:28
Version: 1.12.4
Current Configuration:
{
"name": "Debug-gcc",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/home/user/gcc-env/bin/g++",
"cStandard": "gnu17",
"cppStandard": "gnu++20",
"intelliSenseMode": "linux-gcc-x64",
"compileCommands": "${workspaceFolder}/build/debug/compile_commands.json",
"compilerPathIsExplicit": true,
"cStandardIsExplicit": true,
"cppStandardIsExplicit": true,
"intelliSenseModeIsExplicit": true,
"mergeConfigurations": false,
"browse": {
"path": [
"${workspaceFolder}/**"
],
"limitSymbolsToIncludedHeaders": true
}
}
Translation Unit Mappings:
[ /mnt/something/dev/addressof-bug/addressof-bug.cpp ]:
/mnt/something/dev/addressof-bug/addressof-bug.cpp
Translation Unit Configurations:
[ /mnt/something/dev/addressof-bug/addressof-bug.cpp ]: not ready
Process ID: 34431
Memory Usage: 328 MB
Compiler Path: /home/user/gcc-env/bin/g++
Includes:
/mnt/something/dev/addressof-bug/build/debug/addressof-bug.p
/mnt/something/dev/addressof-bug/build/debug
/mnt/something/dev/addressof-bug
/home/user/libs-dev/boost_1_80_0
/opt/intel/oneapi/vpl/2022.0.0/include
/opt/intel/oneapi/tbb/2021.5.1/include
/opt/intel/oneapi/mkl/2022.1.0/include
/opt/intel/oneapi/ipp/2021.5.2/include
/opt/intel/oneapi/dnnl/2022.0.2/cpu_dpcpp_gpu_dpcpp/lib
/opt/intel/oneapi/dev-utilities/2021.5.2/include
/home/user/gcc-env/include
/home/user/binutils-env/include
/home/user/gcc-env/include/c++/12
/home/user/gcc-env/include/c++/12/x86_64-linux-gnu
/home/user/gcc-env/include/c++/12/backward
/home/user/gcc-env/lib/gcc/x86_64-linux-gnu/12/include
/usr/local/include
/home/user/gcc-env/lib/gcc/x86_64-linux-gnu/12/include-fixed
/usr/include
Defines:
_FILE_OFFSET_BITS=64
BOOST_ALL_NO_LIB
DEBUG
Standard Version: c++20
IntelliSense Mode: linux-gcc-x64
Other Flags:
--g++
--gnu_version=120101
compile_commands.json entry:
directory: /mnt/something/dev/addressof-bug/build/debug
file: ../../addressof-bug.cpp
command: g++ -Iaddressof-bug.p -I. -I../.. -I/home/user/libs-dev/boost_1_80_0 -I/home/user/gcc-env/include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -std=gnu++20 -O0 -g -DBOOST_ALL_NO_LIB -DDEBUG -march=native -mtune=native -fopenmp -Wno-deprecated-declarations -Wno-class-memaccess -Wno-deprecated-enum-enum-conversion -fconcepts-diagnostics-depth=0 -ffunction-sections -fdata-sections -fPIC -MD -MQ addressof-bug.p/addressof-bug.cpp.o -MF addressof-bug.p/addressof-bug.cpp.o.d -o addressof-bug.p/addressof-bug.cpp.o -c ../../addressof-bug.cpp
output: addressof-bug.p/addressof-bug.cpp.o
Total Memory Usage: 328 MB
Browse Paths from compile_commands.json, from workspace folder: /mnt/something/dev/addressof-bug
/home/user/gcc-env/include
/home/user/libs-dev/boost_1_80_0
/mnt/something/dev/addressof-bug
/mnt/something/dev/addressof-bug/build/debug
/mnt/something/dev/addressof-bug/build/debug/addressof-bug.p
------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 165800
language server log:
loggingLevel: Debug
cpptools/didChangeCppProperties
Attempting to get defaults from C compiler in "compilerPath" property: '/home/user/gcc-env/bin/g++'
Querying compiler for default C++ language standard using command line: /home/user/gcc-env/bin/g++ -x c++ -E -dM /dev/null
Detected language standard version: gnu++17
Querying compiler for default C language standard using command line: /home/user/gcc-env/bin/g++ -x c -E -dM /dev/null
Detected language standard version: gnu17
Querying compiler's default target using command line: "/home/user/gcc-env/bin/g++" -dumpmachine
Compiler returned default target value: x86_64-linux-gnu
Compiler query command line: /home/user/gcc-env/bin/g++ -std=gnu17 -m64 -Wp,-v -E -dM -x c /dev/null
Code browsing service initialized
Attempting to get defaults from C++ compiler in "compilerPath" property: '/home/user/gcc-env/bin/g++'
Compiler query command line: /home/user/gcc-env/bin/g++ -std=gnu++20 -m64 -Wp,-v -E -dM -x c++ /dev/null
Attempting to get defaults from C++ compiler in "compilerPath" property: '/home/user/gcc-env/bin/g++'
Folder: /home/user/binutils-env/include/ will be indexed
Folder: /home/user/gcc-env/include/ will be indexed
Folder: /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/12/include/ will be indexed
Folder: /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/12/include-fixed/ will be indexed
Folder: /opt/intel/oneapi/dev-utilities/2021.5.2/include/ will be indexed
Folder: /opt/intel/oneapi/dnnl/2022.0.2/cpu_dpcpp_gpu_dpcpp/lib/ will be indexed
Folder: /opt/intel/oneapi/ipp/2021.5.2/include/ will be indexed
Folder: /opt/intel/oneapi/mkl/2022.1.0/include/ will be indexed
Folder: /opt/intel/oneapi/tbb/2021.5.1/include/ will be indexed
Folder: /opt/intel/oneapi/vpl/2022.0.0/include/ will be indexed
Folder: /usr/include/ will be indexed
Folder: /usr/local/include/ will be indexed
Folder: /mnt/something/dev/addressof-bug/ will be indexed
Folder: /home/user/libs-dev/boost_1_80_0/ will be indexed
Folder: /home/user/gcc-env/include/c++/12/ will be indexed
textDocument/didOpen: /mnt/something/dev/addressof-bug/addressof-bug.cpp
Discovering files...
cpptools/textEditorSelectionChange
cpptools/activeDocumentChange: /mnt/something/dev/addressof-bug/addressof-bug.cpp
sending compilation args for /mnt/something/dev/addressof-bug/addressof-bug.cpp
include: /mnt/something/dev/addressof-bug/build/debug/addressof-bug.p
include: /mnt/something/dev/addressof-bug/build/debug
include: /mnt/something/dev/addressof-bug
include: /home/user/libs-dev/boost_1_80_0
include: /opt/intel/oneapi/vpl/2022.0.0/include
include: /opt/intel/oneapi/tbb/2021.5.1/include
include: /opt/intel/oneapi/mkl/2022.1.0/include
include: /opt/intel/oneapi/ipp/2021.5.2/include
include: /opt/intel/oneapi/dnnl/2022.0.2/cpu_dpcpp_gpu_dpcpp/lib
include: /opt/intel/oneapi/dev-utilities/2021.5.2/include
include: /home/user/gcc-env/include
include: /home/user/binutils-env/include
include: /home/user/gcc-env/include/c++/12
include: /home/user/gcc-env/include/c++/12/x86_64-linux-gnu
include: /home/user/gcc-env/include/c++/12/backward
include: /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/12/include
include: /usr/local/include
include: /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/12/include-fixed
include: /usr/include
define: __UINT_LEAST16_MAX__=0xffff
define: __FLT16_HAS_QUIET_NAN__=1
define: __ATOMIC_ACQUIRE=2
define: __FLT128_MAX_10_EXP__=4932
define: __GCC_IEC_559_COMPLEX=2
define: __UINT_LEAST8_TYPE__=unsigned char
define: __SIZEOF_FLOAT80__=16
define: __INTMAX_C(c)=c ## L
define: __MOVBE__=1
define: __UINT8_MAX__=0xff
define: __SCHAR_WIDTH__=8
define: __WINT_MAX__=0xffffffffU
define: __ORDER_LITTLE_ENDIAN__=1234
define: __SIZE_MAX__=0xffffffffffffffffUL
define: __SSE4_1__=1
define: __WCHAR_MAX__=0x7fffffff
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1
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: __DBL_MIN_EXP__=(-1021)
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: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1
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: __LAHF_SAHF__=1
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: __DBL_DENORM_MIN__=double(4.94065645841246544176568792868221372e-324L)
define: __FLT128_MIN_EXP__=(-16381)
define: __WINT_MIN__=0U
define: __CHAR_BIT__=8
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: __skylake__=1
define: __FLT32X_MANT_DIG__=53
define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
define: __FLT32_MAX_10_EXP__=38
define: __FLT64X_EPSILON__=1.08420217248550443400745280086994171e-19F64x
define: __STDC_HOSTED__=1
define: __FLT32_DIG__=6
define: __FLT_EPSILON__=1.19209289550781250000000000000000000e-7F
define: __GXX_WEAK__=1
define: __ABM__=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: __CHAR8_TYPE__=unsigned char
define: __FLT64X_DENORM_MIN__=3.64519953188247460252840593361941982e-4951F64x
define: __FP_FAST_FMA=1
define: __CRC32__=1
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: __DBL_DIG__=15
define: __gnu_linux__=1
define: __INT16_MAX__=0x7fff
define: __FLT64_MIN_EXP__=(-1021)
define: __tune_skylake__=1
define: __FLT64X_MIN_10_EXP__=(-4931)
define: __LDBL_HAS_QUIET_NAN__=1
define: __FLT16_MIN_EXP__=(-13)
define: __FLT64_MANT_DIG__=53
define: __FLT_MIN__=1.17549435082228750796873653722224568e-38F
define: __FLT64X_MANT_DIG__=64
define: __GNUC__=12
define: __GXX_RTTI=1
define: __MMX__=1
define: __XSAVES__=1
define: __FLT_HAS_DENORM__=1
define: __SIZEOF_LONG_DOUBLE__=16
define: __XSAVEOPT__=1
define: __BIGGEST_ALIGNMENT__=32
define: __STDC_UTF_16__=1
define: __PRFCHW__=1
define: __FLT64_MAX_10_EXP__=308
define: __FLT16_MAX_10_EXP__=4
define: __FLT32_HAS_INFINITY__=1
define: __DBL_MAX__=double(1.79769313486231570814527423731704357e+308L)
define: __INT_FAST32_MAX__=0x7fffffffffffffffL
define: __DBL_HAS_INFINITY__=1
define: __SSE4_2__=1
define: __SIZEOF_FLOAT__=4
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: __FLT_DIG__=6
define: __SEG_GS=1
define: __cplusplus=202002L
define: __DEC32_MIN__=1E-95DF
define: __DEPRECATED=1
define: __POPCNT__=1
define: __DBL_MAX_EXP__=1024
define: __WCHAR_WIDTH__=32
define: __FLT32_MAX__=3.40282346638528859811704183484516925e+38F32
define: __DEC128_EPSILON__=1E-33DL
define: __FLT16_DECIMAL_DIG__=5
define: __SSE2_MATH__=1
define: __ATOMIC_HLE_RELEASE=131072
define: __PTRDIFF_MAX__=0x7fffffffffffffffL
define: __FLT128_MAX_EXP__=16384
define: __amd64=1
define: __AVX__=1
define: __GNUG__=12
define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
define: __SIZEOF_SIZE_T__=8
define: __LZCNT__=1
define: __FLT64X_MIN_EXP__=(-16381)
define: __SIZEOF_WINT_T__=4
define: __LONG_LONG_WIDTH__=64
define: __FLT32_MAX_EXP__=128
define: __GXX_ABI_VERSION=1017
define: __FLT_MIN_EXP__=(-125)
define: __GCC_HAVE_DWARF2_CFI_ASM=1
define: __x86_64=1
define: __INT_FAST64_TYPE__=long int
define: __FP_FAST_FMAF=1
define: __FLT64_DENORM_MIN__=4.94065645841246544176568792868221372e-324F64
define: __DBL_MIN__=double(2.22507385850720138309023271733240406e-308L)
define: __CLFLUSHOPT__=1
define: __PCLMUL__=1
define: __FLT16_DENORM_MIN__=5.96046447753906250000000000000000000e-8F16
define: __FLT128_EPSILON__=1.92592994438723585305597794258492732e-34F128
define: __FLT64X_NORM_MAX__=1.18973149535723176502126385303097021e+4932F64x
define: __SIZEOF_POINTER__=8
define: __F16C__=1
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: __FLT16_MIN_10_EXP__=(-4)
define: __FLT64X_DECIMAL_DIG__=21
define: __DEC128_MIN__=1E-6143DL
define: __REGISTER_PREFIX__=
define: __UINT16_MAX__=0xffff
define: __FLT128_HAS_INFINITY__=1
define: __LDBL_HAS_INFINITY__=1
define: __FLT32_MIN__=1.17549435082228750796873653722224568e-38F32
define: __UINT8_TYPE__=unsigned char
define: __XSAVE__=1
define: __NO_INLINE__=1
define: __DEC_EVAL_METHOD__=2
define: __DEC128_MAX__=9.999999999999999999999999999999999E6144DL
define: __FLT32X_MAX_10_EXP__=308
define: __LDBL_DECIMAL_DIG__=21
define: __VERSION__="12.1.1 20220818"
define: __UINT64_C(c)=c ## UL
define: __FMA__=1
define: _STDC_PREDEF_H=1
define: __GLIBCXX_TYPE_INT_N_0=__int128
define: __skylake=1
define: __INT_LEAST32_MAX__=0x7fffffff
define: __GCC_ATOMIC_INT_LOCK_FREE=2
define: __FLT32_MANT_DIG__=24
define: __FLT16_IS_IEC_60559__=2
define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __FLT32X_MIN_EXP__=(-1021)
define: __STDC_IEC_60559_COMPLEX__=201404L
define: __ATOMIC_HLE_ACQUIRE=65536
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: __FLT16_MIN__=6.10351562500000000000000000000000000e-5F16
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: __FLT32X_MIN__=2.22507385850720138309023271733240406e-308F32x
define: __SIG_ATOMIC_MAX__=0x7fffffff
define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
define: __USER_LABEL_PREFIX__=
define: __STDC_IEC_60559_BFP__=201404L
define: __SIZEOF_PTRDIFF_T__=8
define: __RDSEED__=1
define: __BMI__=1
define: __LDBL_DIG__=18
define: __FLT64_IS_IEC_60559__=2
define: __x86_64__=1
define: __FLT16_MAX_EXP__=16
define: __DEC32_SUBNORMAL_MIN__=0.000001E-95DF
define: __INT_FAST16_MAX__=0x7fffffffffffffffL
define: __GCC_CONSTRUCTIVE_SIZE=64
define: __FLT64_DIG__=15
define: __UINT_FAST32_MAX__=0xffffffffffffffffUL
define: __UINT_LEAST64_TYPE__=long unsigned int
define: __FLT16_EPSILON__=9.76562500000000000000000000000000000e-4F16
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: __FLT16_NORM_MAX__=6.55040000000000000000000000000000000e+4F16
define: __DEC64_MANT_DIG__=16
define: __INT64_MAX__=0x7fffffffffffffffL
define: __FLT32_DENORM_MIN__=1.40129846432481707092372958328991613e-45F32
define: __SIG_ATOMIC_WIDTH__=32
define: __GCC_DESTRUCTIVE_SIZE=64
define: __INT_LEAST64_TYPE__=long int
define: __INT16_TYPE__=short int
define: __INT_LEAST8_TYPE__=signed char
define: __FLT16_MAX__=6.55040000000000000000000000000000000e+4F16
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: __AVX2__=1
define: __FLT64_HAS_QUIET_NAN__=1
define: __SGX__=1
define: __FLT32_MIN_10_EXP__=(-37)
define: __SSSE3__=1
define: __EXCEPTIONS=1
define: __RDRND__=1
define: __PTRDIFF_WIDTH__=64
define: __LDBL_MANT_DIG__=64
define: __FLT64_HAS_INFINITY__=1
define: __FLT64X_MAX__=1.18973149535723176502126385303097021e+4932F64x
define: __FLT16_HAS_INFINITY__=1
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: __INTPTR_TYPE__=long int
define: __UINT16_TYPE__=short unsigned int
define: __WCHAR_TYPE__=int
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: __FP_FAST_FMAF32=1
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: __WINT_WIDTH__=32
define: __FP_FAST_FMAF64=1
define: __INT_LEAST64_WIDTH__=64
define: __LDBL_MAX_EXP__=16384
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: __FLT32_MIN_EXP__=(-125)
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__=1
define: __FLT128_NORM_MAX__=1.18973149535723176508575932662800702e+4932F128
define: __amd64__=1
define: __FLT64_NORM_MAX__=1.79769313486231570814527423731704357e+308F64
define: __FLT128_HAS_QUIET_NAN__=1
define: __INTMAX_MAX__=0x7fffffffffffffffL
define: __SSE3__=1
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: __FP_FAST_FMAF32x=1
define: __FLT16_HAS_DENORM__=1
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: __UINT_FAST32_TYPE__=long unsigned int
define: __FLT16_MANT_DIG__=11
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: __XSAVEC__=1
define: __SIZEOF_DOUBLE__=8
define: __FLT_MIN_10_EXP__=(-37)
define: __FLT_MANT_DIG__=24
define: __FLT64_MIN__=2.22507385850720138309023271733240406e-308F64
define: __INT_LEAST32_WIDTH__=32
define: __INTMAX_TYPE__=long int
define: __DEC128_MAX_EXP__=6145
define: __FSGSBASE__=1
define: __FLT32X_HAS_QUIET_NAN__=1
define: __ATOMIC_CONSUME=1
define: __GNUC_MINOR__=1
define: __INT_FAST16_WIDTH__=64
define: __UINTMAX_MAX__=0xffffffffffffffffUL
define: __FLT32X_DENORM_MIN__=4.94065645841246544176568792868221372e-324F32x
define: __DBL_MAX_10_EXP__=308
define: __LDBL_DENORM_MIN__=3.64519953188247460252840593361941982e-4951L
define: __GCC_ATOMIC_CHAR8_T_LOCK_FREE=2
define: __BMI2__=1
define: __INT16_C(c)=c
define: __STDC__=1
define: __AES__=1
define: __FLT32X_DIG__=15
define: __PTRDIFF_TYPE__=long int
define: __DEC64_MIN_EXP__=(-382)
define: __ATOMIC_SEQ_CST=5
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16=1
define: __ADX__=1
define: __FLT32X_MIN_10_EXP__=(-307)
define: __UINTPTR_TYPE__=long unsigned int
define: __FLT16_DIG__=3
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: __HAVE_SPECULATION_SAFE_VALUE=1
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
define: _FILE_OFFSET_BITS=64
define: BOOST_ALL_NO_LIB
define: DEBUG
other: --g++
other: --gnu_version=120101
stdver: c++20
intelliSenseMode: linux-gcc-x64
cpptools/getInlayHints: /mnt/something/dev/addressof-bug/addressof-bug.cpp (id: 2)
Checking for syntax errors: /mnt/something/dev/addressof-bug/addressof-bug.cpp
Queueing IntelliSense update for files in translation unit of: /mnt/something/dev/addressof-bug/addressof-bug.cpp
Processing folder (recursive): /home/user/binutils-env/include/
Processing folder (recursive): /home/user/gcc-env/include/
cpptools/getDocumentSymbols: /mnt/something/dev/addressof-bug/addressof-bug.cpp (id: 3)
cpptools/getDocumentSymbols
Processing folder (recursive): /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/12/include/
Processing folder (recursive): /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/12/include-fixed/
Processing folder (recursive): /opt/intel/oneapi/dev-utilities/2021.5.2/include/
Processing folder (recursive): /opt/intel/oneapi/dnnl/2022.0.2/cpu_dpcpp_gpu_dpcpp/lib/
Processing folder (recursive): /opt/intel/oneapi/ipp/2021.5.2/include/
Processing folder (recursive): /opt/intel/oneapi/mkl/2022.1.0/include/
Processing folder (recursive): /opt/intel/oneapi/tbb/2021.5.1/include/
Processing folder (recursive): /opt/intel/oneapi/vpl/2022.0.0/include/
Processing folder (recursive): /usr/include/
cpptools/finishUpdateSquiggles
Update IntelliSense time (sec): 1.875
Processing folder (recursive): /usr/local/include/
Processing folder (recursive): /mnt/something/dev/addressof-bug/
cpptools/getSemanticTokens: /mnt/something/dev/addressof-bug/addressof-bug.cpp (id: 4)
Processing folder (recursive): /home/user/libs-dev/boost_1_80_0/
cpptools/getFoldingRanges: /mnt/something/dev/addressof-bug/addressof-bug.cpp (id: 5)
Processing folder (recursive): /home/user/gcc-env/include/c++/12/
Discovering files: 165800 file(s) processed
0 file(s) removed from database
Done discovering files.
Parsing open files...
Populating include completion cache.
Done parsing open files.
Parsing remaining files...
Parsing: 0 files(s) processed
Done parsing remaining files.
### Screenshots
See above.
I know this is most likely an EDG frontend bug, these bugs take a long time to fix because you have to coordinate with the Visual Studio team. Therefore, can I kindly encourage you to start early with this bug?
More information. It works better, if I set the compiler to C++14. It is still not happy with addressof, but IntelliSense and syntax highlight are fully functional in other places.

I managed to compose a simpler example:
#include <vector>
#include <range/v3/view/addressof.hpp>
#include <range/v3/view/remove_if.hpp>
namespace rs = ranges;
namespace rv = ranges::views;
int main(int argc, char* argv[]) {
auto p2 = std::vector<std::vector<int>>{};
auto p2_filtered_holes = p2 | rv::remove_if([](auto) {
return false;
});
rv::addressof(p2_filtered_holes);
}
It's a vector of vectors that confuses IntelliSense.

Without addressof:

I tried with Clang, i.e. changed the project compiler, and "intelliSenseMode": "linux-clang-x64" in c_cpp_properties.json. The problem remains.
Hey, guys. I attached a debugger, it seems like the language server goes into an infinite recursion, and then initiates a seg fault. Here is a top of the stack trace, it's just cycles through scan_function_call until exits with a seg fault.
* thread #24, name = 'cpptools-srv', stop reason = signal SIGSEGV: address access protected (fault address: 0x7f6820417ff8)
* frame #0: 0x00000000008d6af9 cpptools-srv`traverse_type_tree(a_type*, int (*)(a_type*, int*), int) + 9
frame #1: 0x00000000008d7394 cpptools-srv`traverse_template_args(a_template_arg*, int (*)(a_type*, int*), int) + 420
frame #2: 0x00000000008d6c98 cpptools-srv`traverse_type_tree(a_type*, int (*)(a_type*, int*), int) + 424
frame #3: 0x00000000008d7394 cpptools-srv`traverse_template_args(a_template_arg*, int (*)(a_type*, int*), int) + 420
frame #4: 0x00000000008d6c98 cpptools-srv`traverse_type_tree(a_type*, int (*)(a_type*, int*), int) + 424
frame #5: 0x00000000008d7394 cpptools-srv`traverse_template_args(a_template_arg*, int (*)(a_type*, int*), int) + 420
frame #6: 0x00000000008d6c98 cpptools-srv`traverse_type_tree(a_type*, int (*)(a_type*, int*), int) + 424
frame #7: 0x00000000008d7394 cpptools-srv`traverse_template_args(a_template_arg*, int (*)(a_type*, int*), int) + 420
frame #8: 0x00000000008d6c98 cpptools-srv`traverse_type_tree(a_type*, int (*)(a_type*, int*), int) + 424
frame #9: 0x00000000008d7394 cpptools-srv`traverse_template_args(a_template_arg*, int (*)(a_type*, int*), int) + 420
frame #10: 0x00000000008d6c98 cpptools-srv`traverse_type_tree(a_type*, int (*)(a_type*, int*), int) + 424
frame #11: 0x00000000008d7394 cpptools-srv`traverse_template_args(a_template_arg*, int (*)(a_type*, int*), int) + 420
frame #12: 0x00000000008d6c98 cpptools-srv`traverse_type_tree(a_type*, int (*)(a_type*, int*), int) + 424
frame #13: 0x00000000008d712b cpptools-srv`traverse_type_tree(a_type*, int (*)(a_type*, int*), int) + 1595
frame #14: 0x00000000008d7394 cpptools-srv`traverse_template_args(a_template_arg*, int (*)(a_type*, int*), int) + 420
frame #15: 0x00000000008d6c98 cpptools-srv`traverse_type_tree(a_type*, int (*)(a_type*, int*), int) + 424
frame #16: 0x00000000008d7394 cpptools-srv`traverse_template_args(a_template_arg*, int (*)(a_type*, int*), int) + 420
frame #17: 0x00000000008d6c98 cpptools-srv`traverse_type_tree(a_type*, int (*)(a_type*, int*), int) + 424
frame #18: 0x00000000008d712b cpptools-srv`traverse_type_tree(a_type*, int (*)(a_type*, int*), int) + 1595
frame #19: 0x000000000087f1b9 cpptools-srv`template_arg_list_involves_error_entity(a_template_arg*) + 89
frame #20: 0x0000000000630127 cpptools-srv`rescan_expr_with_substitution_internal(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*, int) + 71
frame #21: 0x000000000066674b cpptools-srv`make_rescan_operand_full(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*) + 123
frame #22: 0x000000000066710b cpptools-srv`make_rescan_operands(a_rescan_control_block*, an_operand*, an_operand*, an_operand*, a_source_position*, unsigned int*, a_source_position*) + 347
frame #23: 0x0000000000633550 cpptools-srv`scan_arith_prefix_operator(a_rescan_control_block*, an_operand*) + 64
frame #24: 0x000000000063041d cpptools-srv`rescan_expr_with_substitution_internal(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*, int) + 829
frame #25: 0x000000000064d50e cpptools-srv`rescan_expr_with_substitution(an_expr_node*, a_type*, a_rescan_control_block*, a_constant*) + 334
frame #26: 0x000000000072c612 cpptools-srv`copy_template_param_expr(an_expr_node*, a_template_arg*, a_template_param*, a_type*, a_source_position*, int, int*, a_ctws_state*, a_constant*, a_constant**) + 226
frame #27: 0x0000000000732417 cpptools-srv`copy_template_param_con_with_substitution(a_constant*, a_template_arg*, a_template_param*, a_type*, a_source_position*, int, int*, a_ctws_state*) + 855
frame #28: 0x00000000008881c2 cpptools-srv`substitute_template_argument(a_template_arg*, a_template_param*, a_template_arg*, a_template_param*, a_template_arg*, a_template_param*, a_source_position*, int, int, int*, a_ctws_state*) + 674
frame #29: 0x0000000000887897 cpptools-srv`copy_template_arg_list_with_substitution(a_symbol*, a_template_arg*, a_template_param*, a_template_param*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 1591
frame #30: 0x00000000008889a8 cpptools-srv`copy_template_class_reference_with_substitution(a_symbol*, a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*, a_type**) + 536
frame #31: 0x00000000008839a9 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 2521
frame #32: 0x0000000000886d22 cpptools-srv`copy_parent_type_with_substitution(a_symbol*, a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int, int*, a_ctws_state*) + 130
frame #33: 0x0000000000883204 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 564
frame #34: 0x00000000008846eb cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 5915
frame #35: 0x0000000000887fb6 cpptools-srv`substitute_template_argument(a_template_arg*, a_template_param*, a_template_arg*, a_template_param*, a_template_arg*, a_template_param*, a_source_position*, int, int, int*, a_ctws_state*) + 150
frame #36: 0x000000000088b827 cpptools-srv`all_templ_params_have_values(a_template_arg*, a_template_param*, int, int, a_symbol*, a_template_symbol_supplement*, unsigned int) + 1063
frame #37: 0x000000000087a716 cpptools-srv`wrapup_template_argument_deduction(a_template_arg*, a_symbol*, a_template_param*, int, unsigned int) + 182
frame #38: 0x000000000087a516 cpptools-srv`wrapup_function_template_argument_deduction(a_template_arg**, a_symbol*, a_template_param*, int, unsigned int) + 118
frame #39: 0x000000000082eec1 cpptools-srv`determine_function_viability(a_symbol*, a_symbol*, int, a_template_arg*, a_symbol*, a_type*, an_init_component*, int, an_operand*, a_type*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, int*, int*, int*, int*) + 4017
frame #40: 0x000000000080edc0 cpptools-srv`try_overloaded_function_match(a_symbol*, int, a_template_arg*, an_init_component*, an_init_component*, int, an_operand*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, a_symbol**, int*, int*, int*) + 1440
frame #41: 0x000000000080ff32 cpptools-srv`select_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component*, an_init_component*, int, int, int, int, an_overload_context, a_source_position*, unsigned int, int*, int*, int*, int*, a_symbol**, an_arg_match_summary**) + 2946
frame #42: 0x0000000000816595 cpptools-srv`select_and_prepare_to_call_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component**, int, int, int, int, int, int, an_overload_context, an_operand*, a_source_position*, unsigned int, a_source_position*, int*, an_operand*, an_expr_node**, int*, int) + 245
frame #43: 0x000000000064370a cpptools-srv`scan_function_call(an_operand*, an_operand*, a_rescan_control_block*, an_operand*) + 9162
frame #44: 0x0000000000630f2a cpptools-srv`rescan_expr_with_substitution_internal(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*, int) + 3658
frame #45: 0x000000000066674b cpptools-srv`make_rescan_operand_full(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*) + 123
frame #46: 0x000000000061cea9 cpptools-srv`scan_decltype_operator(a_rescan_control_block*, int) + 617
frame #47: 0x000000000061d6f6 cpptools-srv`decltype_of_expr_with_substitution(a_type*, an_expr_node*, a_template_arg*, a_template_param*, int, int*, a_ctws_state*) + 294
frame #48: 0x00000000008836e6 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 1814
frame #49: 0x0000000000883da8 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 3544
frame #50: 0x000000000087b0e9 cpptools-srv`substitute_template_arguments(a_symbol*, a_template_arg*, a_template_arg**, a_template_param*, int) + 1257
frame #51: 0x000000000087a530 cpptools-srv`wrapup_function_template_argument_deduction(a_template_arg**, a_symbol*, a_template_param*, int, unsigned int) + 144
frame #52: 0x000000000082eec1 cpptools-srv`determine_function_viability(a_symbol*, a_symbol*, int, a_template_arg*, a_symbol*, a_type*, an_init_component*, int, an_operand*, a_type*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, int*, int*, int*, int*) + 4017
frame #53: 0x000000000080edc0 cpptools-srv`try_overloaded_function_match(a_symbol*, int, a_template_arg*, an_init_component*, an_init_component*, int, an_operand*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, a_symbol**, int*, int*, int*) + 1440
frame #54: 0x000000000080ff32 cpptools-srv`select_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component*, an_init_component*, int, int, int, int, an_overload_context, a_source_position*, unsigned int, int*, int*, int*, int*, a_symbol**, an_arg_match_summary**) + 2946
frame #55: 0x0000000000816595 cpptools-srv`select_and_prepare_to_call_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component**, int, int, int, int, int, int, an_overload_context, an_operand*, a_source_position*, unsigned int, a_source_position*, int*, an_operand*, an_expr_node**, int*, int) + 245
frame #56: 0x000000000064370a cpptools-srv`scan_function_call(an_operand*, an_operand*, a_rescan_control_block*, an_operand*) + 9162
frame #57: 0x0000000000630f2a cpptools-srv`rescan_expr_with_substitution_internal(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*, int) + 3658
frame #58: 0x000000000066674b cpptools-srv`make_rescan_operand_full(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*) + 123
frame #59: 0x000000000061cea9 cpptools-srv`scan_decltype_operator(a_rescan_control_block*, int) + 617
frame #60: 0x000000000061d6f6 cpptools-srv`decltype_of_expr_with_substitution(a_type*, an_expr_node*, a_template_arg*, a_template_param*, int, int*, a_ctws_state*) + 294
frame #61: 0x00000000008836e6 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 1814
frame #62: 0x0000000000883da8 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 3544
frame #63: 0x000000000087b0e9 cpptools-srv`substitute_template_arguments(a_symbol*, a_template_arg*, a_template_arg**, a_template_param*, int) + 1257
frame #64: 0x000000000087a530 cpptools-srv`wrapup_function_template_argument_deduction(a_template_arg**, a_symbol*, a_template_param*, int, unsigned int) + 144
frame #65: 0x000000000082eec1 cpptools-srv`determine_function_viability(a_symbol*, a_symbol*, int, a_template_arg*, a_symbol*, a_type*, an_init_component*, int, an_operand*, a_type*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, int*, int*, int*, int*) + 4017
frame #66: 0x000000000080edc0 cpptools-srv`try_overloaded_function_match(a_symbol*, int, a_template_arg*, an_init_component*, an_init_component*, int, an_operand*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, a_symbol**, int*, int*, int*) + 1440
frame #67: 0x000000000080ff32 cpptools-srv`select_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component*, an_init_component*, int, int, int, int, an_overload_context, a_source_position*, unsigned int, int*, int*, int*, int*, a_symbol**, an_arg_match_summary**) + 2946
frame #68: 0x0000000000816595 cpptools-srv`select_and_prepare_to_call_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component**, int, int, int, int, int, int, an_overload_context, an_operand*, a_source_position*, unsigned int, a_source_position*, int*, an_operand*, an_expr_node**, int*, int) + 245
frame #69: 0x000000000064370a cpptools-srv`scan_function_call(an_operand*, an_operand*, a_rescan_control_block*, an_operand*) + 9162
frame #70: 0x0000000000630f2a cpptools-srv`rescan_expr_with_substitution_internal(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*, int) + 3658
frame #71: 0x000000000066674b cpptools-srv`make_rescan_operand_full(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*) + 123
frame #72: 0x000000000061cea9 cpptools-srv`scan_decltype_operator(a_rescan_control_block*, int) + 617
frame #73: 0x000000000061d6f6 cpptools-srv`decltype_of_expr_with_substitution(a_type*, an_expr_node*, a_template_arg*, a_template_param*, int, int*, a_ctws_state*) + 294
frame #74: 0x00000000008836e6 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 1814
frame #75: 0x0000000000883da8 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 3544
frame #76: 0x000000000087b0e9 cpptools-srv`substitute_template_arguments(a_symbol*, a_template_arg*, a_template_arg**, a_template_param*, int) + 1257
frame #77: 0x000000000087a530 cpptools-srv`wrapup_function_template_argument_deduction(a_template_arg**, a_symbol*, a_template_param*, int, unsigned int) + 144
frame #78: 0x000000000082eec1 cpptools-srv`determine_function_viability(a_symbol*, a_symbol*, int, a_template_arg*, a_symbol*, a_type*, an_init_component*, int, an_operand*, a_type*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, int*, int*, int*, int*) + 4017
frame #79: 0x000000000080edc0 cpptools-srv`try_overloaded_function_match(a_symbol*, int, a_template_arg*, an_init_component*, an_init_component*, int, an_operand*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, a_symbol**, int*, int*, int*) + 1440
frame #80: 0x000000000080ff32 cpptools-srv`select_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component*, an_init_component*, int, int, int, int, an_overload_context, a_source_position*, unsigned int, int*, int*, int*, int*, a_symbol**, an_arg_match_summary**) + 2946
frame #81: 0x0000000000816595 cpptools-srv`select_and_prepare_to_call_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component**, int, int, int, int, int, int, an_overload_context, an_operand*, a_source_position*, unsigned int, a_source_position*, int*, an_operand*, an_expr_node**, int*, int) + 245
frame #82: 0x000000000064370a cpptools-srv`scan_function_call(an_operand*, an_operand*, a_rescan_control_block*, an_operand*) + 9162
frame #83: 0x0000000000630f2a cpptools-srv`rescan_expr_with_substitution_internal(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*, int) + 3658
frame #84: 0x000000000066674b cpptools-srv`make_rescan_operand_full(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*) + 123
frame #85: 0x000000000061cea9 cpptools-srv`scan_decltype_operator(a_rescan_control_block*, int) + 617
frame #86: 0x000000000061d6f6 cpptools-srv`decltype_of_expr_with_substitution(a_type*, an_expr_node*, a_template_arg*, a_template_param*, int, int*, a_ctws_state*) + 294
frame #87: 0x00000000008836e6 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 1814
frame #88: 0x0000000000883da8 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 3544
frame #89: 0x000000000087b0e9 cpptools-srv`substitute_template_arguments(a_symbol*, a_template_arg*, a_template_arg**, a_template_param*, int) + 1257
frame #90: 0x000000000087a530 cpptools-srv`wrapup_function_template_argument_deduction(a_template_arg**, a_symbol*, a_template_param*, int, unsigned int) + 144
frame #91: 0x000000000082eec1 cpptools-srv`determine_function_viability(a_symbol*, a_symbol*, int, a_template_arg*, a_symbol*, a_type*, an_init_component*, int, an_operand*, a_type*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, int*, int*, int*, int*) + 4017
frame #92: 0x000000000080edc0 cpptools-srv`try_overloaded_function_match(a_symbol*, int, a_template_arg*, an_init_component*, an_init_component*, int, an_operand*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, a_symbol**, int*, int*, int*) + 1440
frame #93: 0x000000000080ff32 cpptools-srv`select_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component*, an_init_component*, int, int, int, int, an_overload_context, a_source_position*, unsigned int, int*, int*, int*, int*, a_symbol**, an_arg_match_summary**) + 2946
frame #94: 0x0000000000816595 cpptools-srv`select_and_prepare_to_call_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component**, int, int, int, int, int, int, an_overload_context, an_operand*, a_source_position*, unsigned int, a_source_position*, int*, an_operand*, an_expr_node**, int*, int) + 245
frame #95: 0x000000000064370a cpptools-srv`scan_function_call(an_operand*, an_operand*, a_rescan_control_block*, an_operand*) + 9162
frame #96: 0x0000000000630f2a cpptools-srv`rescan_expr_with_substitution_internal(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*, int) + 3658
frame #97: 0x000000000066674b cpptools-srv`make_rescan_operand_full(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*) + 123
frame #98: 0x000000000061cea9 cpptools-srv`scan_decltype_operator(a_rescan_control_block*, int) + 617
frame #99: 0x000000000061d6f6 cpptools-srv`decltype_of_expr_with_substitution(a_type*, an_expr_node*, a_template_arg*, a_template_param*, int, int*, a_ctws_state*) + 294
frame #100: 0x00000000008836e6 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 1814
frame #101: 0x0000000000883da8 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 3544
frame #102: 0x000000000087b0e9 cpptools-srv`substitute_template_arguments(a_symbol*, a_template_arg*, a_template_arg**, a_template_param*, int) + 1257
frame #103: 0x000000000087a530 cpptools-srv`wrapup_function_template_argument_deduction(a_template_arg**, a_symbol*, a_template_param*, int, unsigned int) + 144
frame #104: 0x000000000082eec1 cpptools-srv`determine_function_viability(a_symbol*, a_symbol*, int, a_template_arg*, a_symbol*, a_type*, an_init_component*, int, an_operand*, a_type*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, int*, int*, int*, int*) + 4017
frame #105: 0x000000000080edc0 cpptools-srv`try_overloaded_function_match(a_symbol*, int, a_template_arg*, an_init_component*, an_init_component*, int, an_operand*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, a_symbol**, int*, int*, int*) + 1440
frame #106: 0x000000000080ff32 cpptools-srv`select_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component*, an_init_component*, int, int, int, int, an_overload_context, a_source_position*, unsigned int, int*, int*, int*, int*, a_symbol**, an_arg_match_summary**) + 2946
frame #107: 0x0000000000816595 cpptools-srv`select_and_prepare_to_call_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component**, int, int, int, int, int, int, an_overload_context, an_operand*, a_source_position*, unsigned int, a_source_position*, int*, an_operand*, an_expr_node**, int*, int) + 245
frame #108: 0x000000000064370a cpptools-srv`scan_function_call(an_operand*, an_operand*, a_rescan_control_block*, an_operand*) + 9162
frame #109: 0x0000000000630f2a cpptools-srv`rescan_expr_with_substitution_internal(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*, int) + 3658
frame #110: 0x000000000066674b cpptools-srv`make_rescan_operand_full(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*) + 123
frame #111: 0x000000000061cea9 cpptools-srv`scan_decltype_operator(a_rescan_control_block*, int) + 617
frame #112: 0x000000000061d6f6 cpptools-srv`decltype_of_expr_with_substitution(a_type*, an_expr_node*, a_template_arg*, a_template_param*, int, int*, a_ctws_state*) + 294
frame #113: 0x00000000008836e6 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 1814
frame #114: 0x0000000000883da8 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 3544
frame #115: 0x000000000087b0e9 cpptools-srv`substitute_template_arguments(a_symbol*, a_template_arg*, a_template_arg**, a_template_param*, int) + 1257
frame #116: 0x000000000087a530 cpptools-srv`wrapup_function_template_argument_deduction(a_template_arg**, a_symbol*, a_template_param*, int, unsigned int) + 144
frame #117: 0x000000000082eec1 cpptools-srv`determine_function_viability(a_symbol*, a_symbol*, int, a_template_arg*, a_symbol*, a_type*, an_init_component*, int, an_operand*, a_type*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, int*, int*, int*, int*) + 4017
frame #118: 0x000000000080edc0 cpptools-srv`try_overloaded_function_match(a_symbol*, int, a_template_arg*, an_init_component*, an_init_component*, int, an_operand*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, a_symbol**, int*, int*, int*) + 1440
frame #119: 0x000000000080ff32 cpptools-srv`select_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component*, an_init_component*, int, int, int, int, an_overload_context, a_source_position*, unsigned int, int*, int*, int*, int*, a_symbol**, an_arg_match_summary**) + 2946
frame #120: 0x0000000000816595 cpptools-srv`select_and_prepare_to_call_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component**, int, int, int, int, int, int, an_overload_context, an_operand*, a_source_position*, unsigned int, a_source_position*, int*, an_operand*, an_expr_node**, int*, int) + 245
frame #121: 0x000000000064370a cpptools-srv`scan_function_call(an_operand*, an_operand*, a_rescan_control_block*, an_operand*) + 9162
frame #122: 0x0000000000630f2a cpptools-srv`rescan_expr_with_substitution_internal(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*, int) + 3658
frame #123: 0x000000000066674b cpptools-srv`make_rescan_operand_full(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*) + 123
frame #124: 0x000000000061cea9 cpptools-srv`scan_decltype_operator(a_rescan_control_block*, int) + 617
frame #125: 0x000000000061d6f6 cpptools-srv`decltype_of_expr_with_substitution(a_type*, an_expr_node*, a_template_arg*, a_template_param*, int, int*, a_ctws_state*) + 294
frame #126: 0x00000000008836e6 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 1814
frame #127: 0x0000000000883da8 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 3544
frame #128: 0x000000000087b0e9 cpptools-srv`substitute_template_arguments(a_symbol*, a_template_arg*, a_template_arg**, a_template_param*, int) + 1257
frame #129: 0x000000000087a530 cpptools-srv`wrapup_function_template_argument_deduction(a_template_arg**, a_symbol*, a_template_param*, int, unsigned int) + 144
frame #130: 0x000000000082eec1 cpptools-srv`determine_function_viability(a_symbol*, a_symbol*, int, a_template_arg*, a_symbol*, a_type*, an_init_component*, int, an_operand*, a_type*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, int*, int*, int*, int*) + 4017
frame #131: 0x000000000080edc0 cpptools-srv`try_overloaded_function_match(a_symbol*, int, a_template_arg*, an_init_component*, an_init_component*, int, an_operand*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, a_symbol**, int*, int*, int*) + 1440
frame #132: 0x000000000080ff32 cpptools-srv`select_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component*, an_init_component*, int, int, int, int, an_overload_context, a_source_position*, unsigned int, int*, int*, int*, int*, a_symbol**, an_arg_match_summary**) + 2946
frame #133: 0x0000000000816595 cpptools-srv`select_and_prepare_to_call_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component**, int, int, int, int, int, int, an_overload_context, an_operand*, a_source_position*, unsigned int, a_source_position*, int*, an_operand*, an_expr_node**, int*, int) + 245
frame #134: 0x000000000064370a cpptools-srv`scan_function_call(an_operand*, an_operand*, a_rescan_control_block*, an_operand*) + 9162
frame #135: 0x0000000000630f2a cpptools-srv`rescan_expr_with_substitution_internal(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*, int) + 3658
frame #136: 0x000000000066674b cpptools-srv`make_rescan_operand_full(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*) + 123
frame #137: 0x000000000061cea9 cpptools-srv`scan_decltype_operator(a_rescan_control_block*, int) + 617
frame #138: 0x000000000061d6f6 cpptools-srv`decltype_of_expr_with_substitution(a_type*, an_expr_node*, a_template_arg*, a_template_param*, int, int*, a_ctws_state*) + 294
frame #139: 0x00000000008836e6 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 1814
frame #140: 0x0000000000883da8 cpptools-srv`copy_type_with_substitution(a_type*, a_template_arg*, a_template_param*, a_source_position*, int, int*, a_ctws_state*) + 3544
frame #141: 0x000000000087b0e9 cpptools-srv`substitute_template_arguments(a_symbol*, a_template_arg*, a_template_arg**, a_template_param*, int) + 1257
frame #142: 0x000000000087a530 cpptools-srv`wrapup_function_template_argument_deduction(a_template_arg**, a_symbol*, a_template_param*, int, unsigned int) + 144
frame #143: 0x000000000082eec1 cpptools-srv`determine_function_viability(a_symbol*, a_symbol*, int, a_template_arg*, a_symbol*, a_type*, an_init_component*, int, an_operand*, a_type*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, int*, int*, int*, int*) + 4017
frame #144: 0x000000000080edc0 cpptools-srv`try_overloaded_function_match(a_symbol*, int, a_template_arg*, an_init_component*, an_init_component*, int, an_operand*, int, int, int, int, int, int, int, int, int, int, an_overload_context, a_candidate_function**, a_symbol**, int*, int*, int*) + 1440
Overall, it's 3363 stack frames
@sean-mcmanus Sean, you were helpful with these issues before. Can you take a look?
@intractabilis Sure. Another user appears to have hit the same issue at https://github.com/microsoft/vscode-cpptools/issues/9774#issuecomment-1243956144 .
Thanks! For the record, I tried increasing the stack size from 8M to 64M. It didn't help. Why do you think it's the same issue?
It seemed like the same issue since the user reported traverse_type_tree and related functions taking up most of the CPU.
Ah, I got it. You referred to a comment, not to the whole issue.
However, in my case it didn't freeze, just crashed.
I got the repro on Linux and Windows with linux-clang-x64 mode, but I'm still investigating getting a VS bug filed...
Actually, it appears fixed already with our pending 1.13.1 release (maybe Monday?).
UPDATE: Looks like Tuesday now.
Great news. Thank you!

@H-G-Hristov What is your screenshot supposed to be showing?
Actually, it appears fixed already with our pending 1.13.1 release (maybe Monday?).
UPDATE: Looks like Tuesday now.
Biting my nails in anticipation.
Actually, it appears fixed already with our pending 1.13.1 release (maybe Monday?). UPDATE: Looks like Tuesday now.
Biting my nails in anticipation.
My fingers are bleeding already. No luck?
Sorry, we had a couple of other bugs show up that we wanted to include in 1.13.1. We will let you know when it is ready.
Is it possible to build a snapshot from git and feed it to my VS Code?
Ah... seems like no. cpptools executables are not a part of the GitHub repository. Are there any CI builds I can download cpptools from?
I simply installed clangd...
Gosh... clangd is fast as lightning.
The fix is available with 1.13.1: https://github.com/microsoft/vscode-cpptools/releases/tag/v1.13.1
I don't see any changes

Yeah, sorry, it's not fixed -- I need to investigate why I was seeing it as fixed (my repro conditions may have been slightly different).
Maybe you had C++14 turned on? The bug is triggered only for C++ > 14.
addressof-bug.tar.gz Here are the files to reproduce.
I figured it out -- it crashes with Release bits but not Debug bits (which is what I was using previously).
Not sure what to do about that yet...there seem to be some incorrect errors generated so it's possible those might be the root cause.
I've filed internal bug 1637920 on the crash, i.e. it repros with our shared VS parser code.