Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intellisense 1.15.4 cannot locate vcruntime_exception.h when including C++ standard libraries #10940

Closed
ghost opened this issue May 11, 2023 · 7 comments
Assignees
Labels
bug Feature: Configuration An issue related to configuring the extension or IntelliSense fixed Check the Milestone for the release in which the fix is or will be available. Language Service regression A bug that didn't exist in a previous release
Milestone

Comments

@ghost
Copy link

ghost commented May 11, 2023

Environment

  • OS and Version: Windows 10
  • VS Code Version: 1.78.1
  • C/C++ Extension Version: 1.15.4

Bug Summary and Steps to Reproduce

Bug Summary:
After updating the C/C++ extension to 1.15.4, Intellisense only gives the following errors on files that include certain (any?) standard library headers, such as memory, random, vector, iostream, and string:

  • #include errors detected. Please update your includePath. Squiggles are disabled for this translation unit (E:\Picross Solver\src\main.cpp).
  • cannot open source file "vcruntime_exception.h" (dependency of "memory")

A simple .cpp file with #include <memory> is enough to get these errors.
However, clang++ can compile such programs without problems
This does not occur in extension versions 1.14.5 or 1.14.4.

Seems to boil down to this code in exception.h:

#if defined(_LIBCPP_ABI_VCRUNTIME)
#include <vcruntime_exception.h>
#endif```

In versions 1.14.4 and 1.14.5,_LIBCPP_ABI_VCRUNTIME is not defined for Intellisense; in version 1.15.4, it is.

### Configuration and Logs

```shell
c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.18362.0",
            "compilerPath": "C:/Program Files/llvm-mingw-20220906-msvcrt-x86_64/bin/clang.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-clang-x64"
        }
    ],
    "version": 4
}

C/C++ Log Diagnostics:

-------- Diagnostics - 5/11/2023, 11:15:53 AM
Version: 1.15.4
Current Configuration:
{
    "name": "Win32",
    "includePath": [
        "e:\\Picross Solver/**"
    ],
    "defines": [
        "_DEBUG",
        "UNICODE",
        "_UNICODE"
    ],
    "windowsSdkVersion": "10.0.18362.0",
    "compilerPath": "C:/Program Files/llvm-mingw-20220906-msvcrt-x86_64/bin/clang.exe",
    "cStandard": "c17",
    "cppStandard": "c++17",
    "intelliSenseMode": "windows-clang-x64",
    "compilerPathIsExplicit": true,
    "cStandardIsExplicit": true,
    "cppStandardIsExplicit": true,
    "intelliSenseModeIsExplicit": true,
    "compilerPathInCppPropertiesJson": "C:/Program Files/llvm-mingw-20220906-msvcrt-x86_64/bin/clang.exe",
    "mergeConfigurations": false,
    "browse": {
        "path": [
            "${workspaceFolder}/**"
        ],
        "limitSymbolsToIncludedHeaders": true
    }
}
Translation Unit Mappings:
[ E:\Picross Solver\src\main.cpp ]:
    E:\Picross Solver\src\main.cpp
Translation Unit Configurations:
[ E:\Picross Solver\src\main.cpp ]:
    Process ID: 30296
    Memory Usage: 253 MB
    Compiler Path: C:\Program Files\llvm-mingw-20220906-msvcrt-x86_64\bin\clang.exe
    Includes:
        C:\Program Files\llvm-mingw-20220906-msvcrt-x86_64\include\c++\v1
        C:\Program Files\llvm-mingw-20220906-msvcrt-x86_64\lib\clang\15.0.0\include
        C:\Program Files\llvm-mingw-20220906-msvcrt-x86_64\include
    Defines:
        _DEBUG
        UNICODE
        _UNICODE
    Standard Version: c++17
    IntelliSense Mode: windows-clang-x64
    Other Flags:
        --clang
        --clang_version=150000
        --ms_extensions
Total Memory Usage: 253 MB

------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 2824
Language server logging LSP: cpptools/textEditorSelectionChange
LSP: cpptools/activeDocumentChange: file:///e%3A/Picross%20Solver/src/test.cpp
LSP: cpptools/restartIntelliSenseForFile: file:///e%3A/Picross%20Solver/src/test.cpp
Checking for syntax errors: E:\Picross Solver\src est.cpp
sending compilation args for E:\Picross Solver\src est.cpp
include: C:\PROGRAM FILES\LLVM-MINGW-20220906-MSVCRT-X86_64\INCLUDE\C++\V1
include: C:\PROGRAM FILES\LLVM-MINGW-20220906-MSVCRT-X86_64\LIB\CLANG
.0.0\INCLUDE
include: C:\PROGRAM FILES\LLVM-MINGW-20220906-MSVCRT-X86_64\INCLUDE
define: _WIN32=1
define: _WIN64=1
define: __ATOMIC_ACQUIRE=2
define: __ATOMIC_ACQ_REL=4
define: __ATOMIC_CONSUME=1
define: __ATOMIC_RELAXED=0
define: __ATOMIC_RELEASE=3
define: __ATOMIC_SEQ_CST=5
define: __BIGGEST_ALIGNMENT__=16
define: __BITINT_MAXWIDTH__=128
define: __BOOL_WIDTH__=8
define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __CHAR16_TYPE__=unsigned short
define: __CHAR32_TYPE__=unsigned int
define: __CHAR_BIT__=8
define: __CLANG_ATOMIC_BOOL_LOCK_FREE=2
define: __CLANG_ATOMIC_CHAR16_T_LOCK_FREE=2
define: __CLANG_ATOMIC_CHAR32_T_LOCK_FREE=2
define: __CLANG_ATOMIC_CHAR_LOCK_FREE=2
define: __CLANG_ATOMIC_INT_LOCK_FREE=2
define: __CLANG_ATOMIC_LLONG_LOCK_FREE=2
define: __CLANG_ATOMIC_LONG_LOCK_FREE=2
define: __CLANG_ATOMIC_POINTER_LOCK_FREE=2
define: __CLANG_ATOMIC_SHORT_LOCK_FREE=2
define: __CLANG_ATOMIC_WCHAR_T_LOCK_FREE=2
define: __CONSTANT_CFSTRINGS__=1
define: __DBL_DECIMAL_DIG__=17
define: __DBL_DENORM_MIN__=4.9406564584124654e-324
define: __DBL_DIG__=15
define: __DBL_EPSILON__=2.2204460492503131e-16
define: __DBL_HAS_DENORM__=1
define: __DBL_HAS_INFINITY__=1
define: __DBL_HAS_QUIET_NAN__=1
define: __DBL_MANT_DIG__=53
define: __DBL_MAX_10_EXP__=308
define: __DBL_MAX_EXP__=1024
define: __DBL_MAX__=1.7976931348623157e+308
define: __DBL_MIN_10_EXP__=(-307)
define: __DBL_MIN_EXP__=(-1021)
define: __DBL_MIN__=2.2250738585072014e-308
define: __DECIMAL_DIG__=__LDBL_DECIMAL_DIG__
define: __DEPRECATED=1
define: __EXCEPTIONS=1
define: __FINITE_MATH_ONLY__=0
define: __FLT16_DECIMAL_DIG__=5
define: __FLT16_DENORM_MIN__=5.9604644775390625e-8F16
define: __FLT16_DIG__=3
define: __FLT16_EPSILON__=9.765625e-4F16
define: __FLT16_HAS_DENORM__=1
define: __FLT16_HAS_INFINITY__=1
define: __FLT16_HAS_QUIET_NAN__=1
define: __FLT16_MANT_DIG__=11
define: __FLT16_MAX_10_EXP__=4
define: __FLT16_MAX_EXP__=16
define: __FLT16_MAX__=6.5504e+4F16
define: __FLT16_MIN_10_EXP__=(-4)
define: __FLT16_MIN_EXP__=(-13)
define: __FLT16_MIN__=6.103515625e-5F16
define: __FLT_DECIMAL_DIG__=9
define: __FLT_DENORM_MIN__=1.40129846e-45F
define: __FLT_DIG__=6
define: __FLT_EPSILON__=1.19209290e-7F
define: __FLT_HAS_DENORM__=1
define: __FLT_HAS_INFINITY__=1
define: __FLT_HAS_QUIET_NAN__=1
define: __FLT_MANT_DIG__=24
define: __FLT_MAX_10_EXP__=38
define: __FLT_MAX_EXP__=128
define: __FLT_MAX__=3.40282347e+38F
define: __FLT_MIN_10_EXP__=(-37)
define: __FLT_MIN_EXP__=(-125)
define: __FLT_MIN__=1.17549435e-38F
define: __FLT_RADIX__=2
define: __FXSR__=1
define: __GCC_ASM_FLAG_OUTPUTS__=1
define: __GCC_ATOMIC_BOOL_LOCK_FREE=2
define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
define: __GCC_ATOMIC_INT_LOCK_FREE=2
define: __GCC_ATOMIC_LLONG_LOCK_FREE=2
define: __GCC_ATOMIC_LONG_LOCK_FREE=2
define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1
define: __GNUC_GNU_INLINE__=1
define: __GNUC_MINOR__=2
define: __GNUC_PATCHLEVEL__=1
define: __GNUC__=4
define: __GNUG__=4
define: __GXX_ABI_VERSION=1002
define: __GXX_EXPERIMENTAL_CXX0X__=1
define: __GXX_RTTI=1
define: __GXX_WEAK__=1
define: __INT16_C_SUFFIX__=
define: __INT16_FMTd__="hd"
define: __INT16_FMTi__="hi"
define: __INT16_MAX__=32767
define: __INT16_TYPE__=short
define: __INT32_C_SUFFIX__=
define: __INT32_FMTd__="d"
define: __INT32_FMTi__="i"
define: __INT32_MAX__=2147483647
define: __INT32_TYPE__=int
define: __INT64_C_SUFFIX__=LL
define: __INT64_FMTd__="lld"
define: __INT64_FMTi__="lli"
define: __INT64_MAX__=9223372036854775807LL
define: __INT64_TYPE__=long long int
define: __INT8_C_SUFFIX__=
define: __INT8_FMTd__="hhd"
define: __INT8_FMTi__="hhi"
define: __INT8_MAX__=127
define: __INT8_TYPE__=signed char
define: __INTMAX_C_SUFFIX__=LL
define: __INTMAX_FMTd__="lld"
define: __INTMAX_FMTi__="lli"
define: __INTMAX_MAX__=9223372036854775807LL
define: __INTMAX_TYPE__=long long int
define: __INTMAX_WIDTH__=64
define: __INTPTR_FMTd__="lld"
define: __INTPTR_FMTi__="lli"
define: __INTPTR_MAX__=9223372036854775807LL
define: __INTPTR_TYPE__=long long int
define: __INTPTR_WIDTH__=64
define: __INT_FAST16_FMTd__="hd"
define: __INT_FAST16_FMTi__="hi"
define: __INT_FAST16_MAX__=32767
define: __INT_FAST16_TYPE__=short
define: __INT_FAST16_WIDTH__=16
define: __INT_FAST32_FMTd__="d"
define: __INT_FAST32_FMTi__="i"
define: __INT_FAST32_MAX__=2147483647
define: __INT_FAST32_TYPE__=int
define: __INT_FAST32_WIDTH__=32
define: __INT_FAST64_FMTd__="lld"
define: __INT_FAST64_FMTi__="lli"
define: __INT_FAST64_MAX__=9223372036854775807LL
define: __INT_FAST64_TYPE__=long long int
define: __INT_FAST64_WIDTH__=64
define: __INT_FAST8_FMTd__="hhd"
define: __INT_FAST8_FMTi__="hhi"
define: __INT_FAST8_MAX__=127
define: __INT_FAST8_TYPE__=signed char
define: __INT_FAST8_WIDTH__=8
define: __INT_LEAST16_FMTd__="hd"
define: __INT_LEAST16_FMTi__="hi"
define: __INT_LEAST16_MAX__=32767
define: __INT_LEAST16_TYPE__=short
define: __INT_LEAST16_WIDTH__=16
define: __INT_LEAST32_FMTd__="d"
define: __INT_LEAST32_FMTi__="i"
define: __INT_LEAST32_MAX__=2147483647
define: __INT_LEAST32_TYPE__=int
define: __INT_LEAST32_WIDTH__=32
define: __INT_LEAST64_FMTd__="lld"
define: __INT_LEAST64_FMTi__="lli"
define: __INT_LEAST64_MAX__=9223372036854775807LL
define: __INT_LEAST64_TYPE__=long long int
define: __INT_LEAST64_WIDTH__=64
define: __INT_LEAST8_FMTd__="hhd"
define: __INT_LEAST8_FMTi__="hhi"
define: __INT_LEAST8_MAX__=127
define: __INT_LEAST8_TYPE__=signed char
define: __INT_LEAST8_WIDTH__=8
define: __INT_MAX__=2147483647
define: __INT_WIDTH__=32
define: __LDBL_DECIMAL_DIG__=21
define: __LDBL_DENORM_MIN__=3.64519953188247460253e-4951L
define: __LDBL_DIG__=18
define: __LDBL_EPSILON__=1.08420217248550443401e-19L
define: __LDBL_HAS_DENORM__=1
define: __LDBL_HAS_INFINITY__=1
define: __LDBL_HAS_QUIET_NAN__=1
define: __LDBL_MANT_DIG__=64
define: __LDBL_MAX_10_EXP__=4932
define: __LDBL_MAX_EXP__=16384
define: __LDBL_MAX__=1.18973149535723176502e+4932L
define: __LDBL_MIN_10_EXP__=(-4931)
define: __LDBL_MIN_EXP__=(-16381)
define: __LDBL_MIN__=3.36210314311209350626e-4932L
define: __LITTLE_ENDIAN__=1
define: __LLONG_WIDTH__=64
define: __LONG_LONG_MAX__=9223372036854775807LL
define: __LONG_MAX__=2147483647L
define: __LONG_WIDTH__=32
define: __MINGW32__=1
define: __MINGW64__=1
define: __MMX__=1
define: __MSVCRT__=1
define: __NO_INLINE__=1
define: __NO_MATH_INLINES=1
define: __OBJC_BOOL_IS_BOOL=0
define: __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES=3
define: __OPENCL_MEMORY_SCOPE_DEVICE=2
define: __OPENCL_MEMORY_SCOPE_SUB_GROUP=4
define: __OPENCL_MEMORY_SCOPE_WORK_GROUP=1
define: __OPENCL_MEMORY_SCOPE_WORK_ITEM=0
define: __ORDER_BIG_ENDIAN__=4321
define: __ORDER_LITTLE_ENDIAN__=1234
define: __ORDER_PDP_ENDIAN__=3412
define: __PIC__=2
define: __POINTER_WIDTH__=64
define: __PRAGMA_REDEFINE_EXTNAME=1
define: __PTRDIFF_FMTd__="lld"
define: __PTRDIFF_FMTi__="lli"
define: __PTRDIFF_MAX__=9223372036854775807LL
define: __PTRDIFF_TYPE__=long long int
define: __PTRDIFF_WIDTH__=64
define: __REGISTER_PREFIX__=
define: __SCHAR_MAX__=127
define: __SEG_FS=1
define: __SEG_GS=1
define: __SEH__=1
define: __SHRT_MAX__=32767
define: __SHRT_WIDTH__=16
define: __SIG_ATOMIC_MAX__=2147483647
define: __SIG_ATOMIC_WIDTH__=32
define: __SIZEOF_DOUBLE__=8
define: __SIZEOF_FLOAT128__=16
define: __SIZEOF_FLOAT__=4
define: __SIZEOF_INT128__=16
define: __SIZEOF_INT__=4
define: __SIZEOF_LONG_DOUBLE__=16
define: __SIZEOF_LONG_LONG__=8
define: __SIZEOF_LONG__=4
define: __SIZEOF_POINTER__=8
define: __SIZEOF_PTRDIFF_T__=8
define: __SIZEOF_SHORT__=2
define: __SIZEOF_SIZE_T__=8
define: __SIZEOF_WCHAR_T__=2
define: __SIZEOF_WINT_T__=2
define: __SIZE_FMTX__="llX"
define: __SIZE_FMTo__="llo"
define: __SIZE_FMTu__="llu"
define: __SIZE_FMTx__="llx"
define: __SIZE_MAX__=18446744073709551615ULL
define: __SIZE_TYPE__=long long unsigned int
define: __SIZE_WIDTH__=64
define: __SSE2_MATH__=1
define: __SSE2__=1
define: __SSE_MATH__=1
define: __SSE__=1
define: __STDCPP_DEFAULT_NEW_ALIGNMENT__=16ULL
define: __STDCPP_THREADS__=1
define: __STDC_HOSTED__=1
define: __STDC_UTF_16__=1
define: __STDC_UTF_32__=1
define: __STDC__=1
define: __STRICT_ANSI__=1
define: __UINT16_C_SUFFIX__=
define: __UINT16_FMTX__="hX"
define: __UINT16_FMTo__="ho"
define: __UINT16_FMTu__="hu"
define: __UINT16_FMTx__="hx"
define: __UINT16_MAX__=65535
define: __UINT16_TYPE__=unsigned short
define: __UINT32_C_SUFFIX__=U
define: __UINT32_FMTX__="X"
define: __UINT32_FMTo__="o"
define: __UINT32_FMTu__="u"
define: __UINT32_FMTx__="x"
define: __UINT32_MAX__=4294967295U
define: __UINT32_TYPE__=unsigned int
define: __UINT64_C_SUFFIX__=ULL
define: __UINT64_FMTX__="llX"
define: __UINT64_FMTo__="llo"
define: __UINT64_FMTu__="llu"
define: __UINT64_FMTx__="llx"
define: __UINT64_MAX__=18446744073709551615ULL
define: __UINT64_TYPE__=long long unsigned int
define: __UINT8_C_SUFFIX__=
define: __UINT8_FMTX__="hhX"
define: __UINT8_FMTo__="hho"
define: __UINT8_FMTu__="hhu"
define: __UINT8_FMTx__="hhx"
define: __UINT8_MAX__=255
define: __UINT8_TYPE__=unsigned char
define: __UINTMAX_C_SUFFIX__=ULL
define: __UINTMAX_FMTX__="llX"
define: __UINTMAX_FMTo__="llo"
define: __UINTMAX_FMTu__="llu"
define: __UINTMAX_FMTx__="llx"
define: __UINTMAX_MAX__=18446744073709551615ULL
define: __UINTMAX_TYPE__=long long unsigned int
define: __UINTMAX_WIDTH__=64
define: __UINTPTR_FMTX__="llX"
define: __UINTPTR_FMTo__="llo"
define: __UINTPTR_FMTu__="llu"
define: __UINTPTR_FMTx__="llx"
define: __UINTPTR_MAX__=18446744073709551615ULL
define: __UINTPTR_TYPE__=long long unsigned int
define: __UINTPTR_WIDTH__=64
define: __UINT_FAST16_FMTX__="hX"
define: __UINT_FAST16_FMTo__="ho"
define: __UINT_FAST16_FMTu__="hu"
define: __UINT_FAST16_FMTx__="hx"
define: __UINT_FAST16_MAX__=65535
define: __UINT_FAST16_TYPE__=unsigned short
define: __UINT_FAST32_FMTX__="X"
define: __UINT_FAST32_FMTo__="o"
define: __UINT_FAST32_FMTu__="u"
define: __UINT_FAST32_FMTx__="x"
define: __UINT_FAST32_MAX__=4294967295U
define: __UINT_FAST32_TYPE__=unsigned int
define: __UINT_FAST64_FMTX__="llX"
define: __UINT_FAST64_FMTo__="llo"
define: __UINT_FAST64_FMTu__="llu"
define: __UINT_FAST64_FMTx__="llx"
define: __UINT_FAST64_MAX__=18446744073709551615ULL
define: __UINT_FAST64_TYPE__=long long unsigned int
define: __UINT_FAST8_FMTX__="hhX"
define: __UINT_FAST8_FMTo__="hho"
define: __UINT_FAST8_FMTu__="hhu"
define: __UINT_FAST8_FMTx__="hhx"
define: __UINT_FAST8_MAX__=255
define: __UINT_FAST8_TYPE__=unsigned char
define: __UINT_LEAST16_FMTX__="hX"
define: __UINT_LEAST16_FMTo__="ho"
define: __UINT_LEAST16_FMTu__="hu"
define: __UINT_LEAST16_FMTx__="hx"
define: __UINT_LEAST16_MAX__=65535
define: __UINT_LEAST16_TYPE__=unsigned short
define: __UINT_LEAST32_FMTX__="X"
define: __UINT_LEAST32_FMTo__="o"
define: __UINT_LEAST32_FMTu__="u"
define: __UINT_LEAST32_FMTx__="x"
define: __UINT_LEAST32_MAX__=4294967295U
define: __UINT_LEAST32_TYPE__=unsigned int
define: __UINT_LEAST64_FMTX__="llX"
define: __UINT_LEAST64_FMTo__="llo"
define: __UINT_LEAST64_FMTu__="llu"
define: __UINT_LEAST64_FMTx__="llx"
define: __UINT_LEAST64_MAX__=18446744073709551615ULL
define: __UINT_LEAST64_TYPE__=long long unsigned int
define: __UINT_LEAST8_FMTX__="hhX"
define: __UINT_LEAST8_FMTo__="hho"
define: __UINT_LEAST8_FMTu__="hhu"
define: __UINT_LEAST8_FMTx__="hhx"
define: __UINT_LEAST8_MAX__=255
define: __UINT_LEAST8_TYPE__=unsigned char
define: __USER_LABEL_PREFIX__=
define: __VERSION__="Clang 15.0.0 (https://github.com/llvm/llvm-project.git 4ba6a9c9f65bbc8bd06e3652cb20fd4dfc846137)"
define: __WCHAR_MAX__=65535
define: __WCHAR_TYPE__=unsigned short
define: __WCHAR_UNSIGNED__=1
define: __WCHAR_WIDTH__=16
define: __WIN32=1
define: __WIN32__=1
define: __WIN64=1
define: __WIN64__=1
define: __WINNT=1
define: __WINNT__=1
define: __WINT_MAX__=65535
define: __WINT_TYPE__=unsigned short
define: __WINT_UNSIGNED__=1
define: __WINT_WIDTH__=16
define: __amd64=1
define: __amd64__=1
define: __cdecl=__attribute__((__cdecl__))
define: __clang__=1
define: __clang_literal_encoding__="UTF-8"
define: __clang_major__=15
define: __clang_minor__=0
define: __clang_patchlevel__=0
define: __clang_version__="15.0.0 (https://github.com/llvm/llvm-project.git 4ba6a9c9f65bbc8bd06e3652cb20fd4dfc846137)"
define: __clang_wide_literal_encoding__="UTF-16"
define: __code_model_small__=1
define: __cplusplus=201703L
define: __declspec(a)=__attribute__((a))
define: __fastcall=__attribute__((__fastcall__))
define: __k8=1
define: __k8__=1
define: __llvm__=1
define: __pascal=__attribute__((__pascal__))
define: __pic__=2
define: __private_extern__=extern
define: __seg_fs=__attribute__((address_space(257)))
define: __seg_gs=__attribute__((address_space(256)))
define: __stdcall=__attribute__((__stdcall__))
define: __thiscall=__attribute__((__thiscall__))
define: __tune_k8__=1
define: __x86_64=1
define: __x86_64__=1
define: _cdecl=__attribute__((__cdecl__))
define: _fastcall=__attribute__((__fastcall__))
define: _pascal=__attribute__((__pascal__))
define: _stdcall=__attribute__((__stdcall__))
define: _thiscall=__attribute__((__thiscall__))
define: _DEBUG
define: UNICODE
define: _UNICODE
other: --clang
other: --clang_version=150000
other: --ms_extensions
stdver: c++17
intelliSenseMode: windows-clang-x64
Queueing IntelliSense update for files in translation unit of: E:\Picross Solver\src est.cpp
LSP: cpptools/getCodeActions: file:///e%3A/Picross%20Solver/src/test.cpp (id: 157)
0 include path suggestion(s) discovered.
Error squiggle count: 3
Error squiggles will be disabled in: file:///E%3A/Picross%20Solver/src/test.cpp
Update IntelliSense time (sec): 0.763
LSP: cpptools/getSemanticTokens: file:///e%3A/Picross%20Solver/src/test.cpp (id: 158)
LSP: cpptools/getFoldingRanges: file:///e%3A/Picross%20Solver/src/test.cpp (id: 159)
LSP: cpptools/getCodeActions: file:///e%3A/Picross%20Solver/src/test.cpp (id: 160)
0 include path suggestion(s) discovered.

Other Extensions

No response

Additional context

No response

@sean-mcmanus sean-mcmanus self-assigned this May 11, 2023
@sean-mcmanus sean-mcmanus added bug Language Service regression A bug that didn't exist in a previous release Feature: Configuration An issue related to configuring the extension or IntelliSense labels May 11, 2023
@sean-mcmanus sean-mcmanus added this to the 1.16.0 milestone May 11, 2023
@sean-mcmanus
Copy link
Contributor

This may be a regression due to #8353. Can you try adding "-fno-ms-extensions" to your compilerArgs property?

@ghost
Copy link
Author

ghost commented May 11, 2023

Added that, seems to be working now (no #include error due to missing vcruntime_exception.h), based on a couple different test files.

@Colengms
Copy link
Contributor

Colengms commented May 11, 2023

This may be related to a define emitted for IntelliSense that is not emitted when building, related to use of the --ms-extensions. Would it be possible to narrow down which define seems to differ between IntelliSense and real compilation?

Since I don't see that you're providing --ms-extensions in your configuration, the C/C++ extension could be incorrectly detecting that they should be used, perhaps due to a particular define generated by your compiler (i.e. _MSC_EXTENSIONS) which is assumed to only be present when MS extensions are enabled.

(1727247)

@sean-mcmanus
Copy link
Contributor

@Colengms Yeah, as a result of #8353 we're adding -fms-extensions whenever __MINGW32__ is defined.

@adalsteinnh
Copy link

I noticed the same problem and i think it boils down to _MSC_VER definition being emitted for IntelliSense and not when building using clang.

Some C++ headers include <exception> which contains this:

#if defined(_LIBCPP_ABI_VCRUNTIME)
#  include <vcruntime_exception.h>
#endif

_LIBCPP_ABI_VCRUNTIME is defined in <__config> which exception includes. Therein you find the following:

#  if defined(_LIBCPP_ABI_FORCE_ITANIUM) && defined(_LIBCPP_ABI_FORCE_MICROSOFT)
#    error "Only one of _LIBCPP_ABI_FORCE_ITANIUM and _LIBCPP_ABI_FORCE_MICROSOFT can be defined"
#  elif defined(_LIBCPP_ABI_FORCE_ITANIUM)
#    define _LIBCPP_ABI_ITANIUM
#  elif defined(_LIBCPP_ABI_FORCE_MICROSOFT)
#    define _LIBCPP_ABI_MICROSOFT
#  else
#    if defined(_WIN32) && defined(_MSC_VER)
#      define _LIBCPP_ABI_MICROSOFT
#    else
#      define _LIBCPP_ABI_ITANIUM
#    endif
#  endif

All the parts are grayed out in the editor except for this one:

if defined(_WIN32) && defined(_MSC_VER)
#      define _LIBCPP_ABI_MICROSOFT
#    else

The following code demonstrates how it is actually defined in the build:

#include <cstdio>
#include <new>

int main(){
    #if defined(_LIBCPP_ABI_VCRUNTIME)
    printf("_LIBCPP_ABI_VCRUNTIME is defined\n");
    #else
    printf("_LIBCPP_ABI_VCRUNTIME is not defined\n");
    #endif
    #if defined(_LIBCPP_ABI_ITANIUM)
    printf("_LIBCPP_ABI_ITANIUM is defined\n");
    #else
    printf("_LIBCPP_ABI_ITANIUM is not defined\n");
    #endif
    #if defined(_MSC_VER)
    printf("_MSC_VER is defined\n");
    #else
    printf("_MSC_VER is not defined\n");
    #endif
    return 0;
}

This outputs:

_LIBCPP_ABI_VCRUNTIME is not defined
_LIBCPP_ABI_ITANIUM is defined
_MSC_VER is not defined

@sean-mcmanus
Copy link
Contributor

Yeah, the _MSV_VER being defined is #10396 , so that's why -fms-extensions doesn't work (having -fms-extensions be the default may still be a regression bug though).

@sean-mcmanus sean-mcmanus added the fixed Check the Milestone for the release in which the fix is or will be available. label May 16, 2023
@michelleangela
Copy link
Contributor

@github-actions github-actions bot locked and limited conversation to collaborators Sep 4, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Feature: Configuration An issue related to configuring the extension or IntelliSense fixed Check the Milestone for the release in which the fix is or will be available. Language Service regression A bug that didn't exist in a previous release
Projects
None yet
Development

No branches or pull requests

4 participants