vscode-cpptools icon indicating copy to clipboard operation
vscode-cpptools copied to clipboard

Range v3 ranges::views::addressof breaks code highlighting

Open intractabilis opened this issue 3 years ago • 23 comments

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.

intractabilis avatar Sep 10 '22 00:09 intractabilis

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?

intractabilis avatar Sep 10 '22 18:09 intractabilis

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. изображение

intractabilis avatar Sep 10 '22 18:09 intractabilis

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: изображение

intractabilis avatar Sep 10 '22 19:09 intractabilis

I tried with Clang, i.e. changed the project compiler, and "intelliSenseMode": "linux-clang-x64" in c_cpp_properties.json. The problem remains.

intractabilis avatar Sep 12 '22 05:09 intractabilis

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

intractabilis avatar Sep 12 '22 17:09 intractabilis

@sean-mcmanus Sean, you were helpful with these issues before. Can you take a look?

intractabilis avatar Sep 12 '22 17:09 intractabilis

@intractabilis Sure. Another user appears to have hit the same issue at https://github.com/microsoft/vscode-cpptools/issues/9774#issuecomment-1243956144 .

sean-mcmanus avatar Sep 12 '22 23:09 sean-mcmanus

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?

intractabilis avatar Sep 13 '22 00:09 intractabilis

It seemed like the same issue since the user reported traverse_type_tree and related functions taking up most of the CPU.

sean-mcmanus avatar Sep 13 '22 00:09 sean-mcmanus

Ah, I got it. You referred to a comment, not to the whole issue.

intractabilis avatar Sep 13 '22 01:09 intractabilis

However, in my case it didn't freeze, just crashed.

intractabilis avatar Sep 13 '22 01:09 intractabilis

I got the repro on Linux and Windows with linux-clang-x64 mode, but I'm still investigating getting a VS bug filed...

sean-mcmanus avatar Sep 14 '22 09:09 sean-mcmanus

Actually, it appears fixed already with our pending 1.13.1 release (maybe Monday?).

UPDATE: Looks like Tuesday now.

sean-mcmanus avatar Sep 14 '22 12:09 sean-mcmanus

Great news. Thank you!

intractabilis avatar Sep 14 '22 14:09 intractabilis

Screenshot 2022-09-16 at 17 23 58

H-G-Hristov avatar Sep 16 '22 14:09 H-G-Hristov

@H-G-Hristov What is your screenshot supposed to be showing?

sean-mcmanus avatar Sep 17 '22 04:09 sean-mcmanus

Actually, it appears fixed already with our pending 1.13.1 release (maybe Monday?).

UPDATE: Looks like Tuesday now.

Biting my nails in anticipation.

intractabilis avatar Sep 19 '22 18:09 intractabilis

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?

intractabilis avatar Sep 21 '22 18:09 intractabilis

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.

bobbrow avatar Sep 21 '22 18:09 bobbrow

Is it possible to build a snapshot from git and feed it to my VS Code?

intractabilis avatar Sep 21 '22 19:09 intractabilis

Ah... seems like no. cpptools executables are not a part of the GitHub repository. Are there any CI builds I can download cpptools from?

intractabilis avatar Sep 21 '22 20:09 intractabilis

I simply installed clangd...

intractabilis avatar Sep 21 '22 20:09 intractabilis

Gosh... clangd is fast as lightning.

intractabilis avatar Sep 21 '22 20:09 intractabilis

The fix is available with 1.13.1: https://github.com/microsoft/vscode-cpptools/releases/tag/v1.13.1

sean-mcmanus avatar Sep 28 '22 06:09 sean-mcmanus

I don't see any changes image image image

intractabilis avatar Sep 30 '22 22:09 intractabilis

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).

sean-mcmanus avatar Oct 01 '22 05:10 sean-mcmanus

Maybe you had C++14 turned on? The bug is triggered only for C++ > 14.

intractabilis avatar Oct 01 '22 17:10 intractabilis

addressof-bug.tar.gz Here are the files to reproduce.

intractabilis avatar Oct 01 '22 17:10 intractabilis

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.

sean-mcmanus avatar Oct 03 '22 14:10 sean-mcmanus

I've filed internal bug 1637920 on the crash, i.e. it repros with our shared VS parser code.

sean-mcmanus avatar Oct 03 '22 16:10 sean-mcmanus