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

Version 0.30.0-insiders3 breaks IntelliSense completion #6009

Closed
adambrickman opened this issue Aug 22, 2020 · 48 comments
Closed

Version 0.30.0-insiders3 breaks IntelliSense completion #6009

adambrickman opened this issue Aug 22, 2020 · 48 comments
Labels
bug Feature: Auto-complete fixed Check the Milestone for the release in which the fix is or will be available. insiders Currently only repros with our latest Insiders release. Language Service more info needed The issue report is not actionable in its current state regression A bug that didn't exist in a previous release
Milestone

Comments

@adambrickman
Copy link

Type: LanguageService

VSCode auto updated from 0.29.0 to 0.30.0-insiders3 and all Intellisense is now broken (on all .c files). It just says "No suggestions". It cannot find the definition of any variables, functions, etc. Verified that compiler path and include paths are set appropriately for cross compiling.

Going back to 0.29.0 fixes the problem (although it will then immediately try to auto-update to 0.30.0, so I have had to disable auto-update for all my extensions as a result until this problem is fixed).

Project is the linux kernel - just .c and .h files.

Describe the bug

  • OS and Version: Ubuntu 14.04 LTS running on an Intel i7-8700 with 64GB RAM (Linux x64 4.14.13)
  • VS Code Version: 1.45.1
  • C/C++ Extension Version: 0.30.0-insiders3
  • Other extensions you installed (and if the issue persists after disabling them): None
  • Does this issue involve using SSH remote to run the extension on a remote machine?: No
  • A clear and concise description of what the bug is, including information about the workspace (i.e. is the workspace a single project or multiple projects, size of the project, etc).

Steps to reproduce

No steps needed - Intellisense simply broke as soon as it updated and I reloaded the editor.

My c_cpp_properties.json:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"CONFIG_GPIOLIB=y",
"CONFIG_OF_GPIO=y"
],
"compilerPath": "/usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc",
"cStandard": "gnu11",
"cppStandard": "gnu++14",
"intelliSenseMode": "gcc-arm"
}
],
"version": 4
}

Expected behavior

Intellisense to pop up with code completion.

Logs
Insert logs here.

Finished installing dependencies

cpptools/didChangeCppProperties
terminating child process: 31816
terminating child process: 31817
Attempting to get defaults from compiler in "compilerPath" property: '/usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc'
terminating child process: 31818
Compiler probe command line: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -std=gnu11 -Wp,-v -E -dD -x c /dev/null
terminating child process: 31820
Code browsing service initialized
Attempting to get defaults from compiler in "compilerPath" property: '/usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc'
terminating child process: 31822
Compiler probe command line: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -std=gnu++14 -Wp,-v -E -dD -x c++ /dev/null
terminating child process: 31825
Folder: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/include/ will be indexed
Folder: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/include-fixed/ will be indexed
Folder: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/ will be indexed
Folder: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/ will be indexed
Folder: /home/devuser/Code/raspberry-pi/linux/ will be indexed
Populate include completion cache.
Discovering files...
Processing folder (recursive): /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/include/
Processing folder (recursive): /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/include-fixed/
Processing folder (recursive): /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/
Processing folder (recursive): /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/
cpptools/getSemanticTokens: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 2)
Processing folder (recursive): /home/devuser/Code/raspberry-pi/linux/
Discovering files: 94090 file(s) processed
0 file(s) removed from database
Done discovering files.
Parsing remaining files...
Parsing: 0 files(s) processed
Done parsing remaining files.
cpptools/getCodeActions: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 3)
textDocument/didOpen: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c
cpptools/activeDocumentChange: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c
cpptools/textEditorSelectionChange
cpptools/getDocumentSymbols: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 4)
cpptools/getDocumentSymbols
cpptools/textEditorSelectionChange
cpptools/getFoldingRanges: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 5)
cpptools/getCodeActions: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 6)
textDocument/hover: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 7)
IntelliSense client not available, using Tag Parser for go to definition.
IntelliSense client not available, using Tag Parser for quick info.
using Tag Parser for quick info
textDocument/hover: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 8)
IntelliSense client not available, using Tag Parser for go to definition.
IntelliSense client not available, using Tag Parser for quick info.
using Tag Parser for quick info
idle loop: reparsing the active document
Checking for syntax errors: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c
sending compilation args for /home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c
include: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/include
include: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/include-fixed
include: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include
include: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include
include: /home/devuser/Code/raspberry-pi/linux/include
include: /home/devuser/Code/raspberry-pi/linux/arch/alpha/include
include: /home/devuser/Code/raspberry-pi/linux/arch/arc/include
include: /home/devuser/Code/raspberry-pi/linux/arch/arm/include
include: /home/devuser/Code/raspberry-pi/linux/arch/x86/include
include: /home/devuser/Code/raspberry-pi/linux/arch/s390/include
include: /home/devuser/Code/raspberry-pi/linux/arch/hexagon/include
include: /home/devuser/Code/raspberry-pi/linux/arch/arm/mach-ebsa110/include
define: STDC=1
define: STDC_VERSION=201112L
define: STDC_UTF_16=1
define: STDC_UTF_32=1
define: STDC_HOSTED=1
define: GNUC=7
define: GNUC_MINOR=5
define: GNUC_PATCHLEVEL=0
define: VERSION="7.5.0"
define: LINARO_RELEASE=201912
define: LINARO_SPIN=0
define: __ATOMIC_RELAXED=0
define: __ATOMIC_SEQ_CST=5
define: __ATOMIC_ACQUIRE=2
define: __ATOMIC_RELEASE=3
define: __ATOMIC_ACQ_REL=4
define: __ATOMIC_CONSUME=1
define: FINITE_MATH_ONLY=0
define: SIZEOF_INT=4
define: SIZEOF_LONG=4
define: SIZEOF_LONG_LONG=8
define: SIZEOF_SHORT=2
define: SIZEOF_FLOAT=4
define: SIZEOF_DOUBLE=8
define: SIZEOF_LONG_DOUBLE=8
define: SIZEOF_SIZE_T=4
define: CHAR_BIT=8
define: BIGGEST_ALIGNMENT=8
define: ORDER_LITTLE_ENDIAN=1234
define: ORDER_BIG_ENDIAN=4321
define: ORDER_PDP_ENDIAN=3412
define: BYTE_ORDER=ORDER_LITTLE_ENDIAN
define: FLOAT_WORD_ORDER=ORDER_LITTLE_ENDIAN
define: SIZEOF_POINTER=4
define: SIZE_TYPE=unsigned int
define: PTRDIFF_TYPE=int
define: WCHAR_TYPE=unsigned int
define: WINT_TYPE=unsigned int
define: INTMAX_TYPE=long long int
define: UINTMAX_TYPE=long long unsigned int
define: CHAR16_TYPE=short unsigned int
define: CHAR32_TYPE=unsigned int
define: SIG_ATOMIC_TYPE=int
define: INT8_TYPE=signed char
define: INT16_TYPE=short int
define: INT32_TYPE=int
define: INT64_TYPE=long long int
define: UINT8_TYPE=unsigned char
define: UINT16_TYPE=short unsigned int
define: UINT32_TYPE=unsigned int
define: UINT64_TYPE=long long unsigned int
define: INT_LEAST8_TYPE=signed char
define: INT_LEAST16_TYPE=short int
define: INT_LEAST32_TYPE=int
define: INT_LEAST64_TYPE=long long int
define: UINT_LEAST8_TYPE=unsigned char
define: UINT_LEAST16_TYPE=short unsigned int
define: UINT_LEAST32_TYPE=unsigned int
define: UINT_LEAST64_TYPE=long long unsigned int
define: INT_FAST8_TYPE=signed char
define: INT_FAST16_TYPE=int
define: INT_FAST32_TYPE=int
define: INT_FAST64_TYPE=long long int
define: UINT_FAST8_TYPE=unsigned char
define: UINT_FAST16_TYPE=unsigned int
define: UINT_FAST32_TYPE=unsigned int
define: UINT_FAST64_TYPE=long long unsigned int
define: INTPTR_TYPE=int
define: UINTPTR_TYPE=unsigned int
define: __GXX_ABI_VERSION=1011
define: SCHAR_MAX=0x7f
define: SHRT_MAX=0x7fff
define: INT_MAX=0x7fffffff
define: LONG_MAX=0x7fffffffL
define: LONG_LONG_MAX=0x7fffffffffffffffLL
define: WCHAR_MAX=0xffffffffU
define: WCHAR_MIN=0U
define: WINT_MAX=0xffffffffU
define: WINT_MIN=0U
define: PTRDIFF_MAX=0x7fffffff
define: SIZE_MAX=0xffffffffU
define: SCHAR_WIDTH=8
define: SHRT_WIDTH=16
define: INT_WIDTH=32
define: LONG_WIDTH=32
define: LONG_LONG_WIDTH=64
define: WCHAR_WIDTH=32
define: WINT_WIDTH=32
define: PTRDIFF_WIDTH=32
define: SIZE_WIDTH=32
define: INTMAX_MAX=0x7fffffffffffffffLL
define: __INTMAX_C(c)=c ## LL
define: UINTMAX_MAX=0xffffffffffffffffULL
define: __UINTMAX_C(c)=c ## ULL
define: INTMAX_WIDTH=64
define: SIG_ATOMIC_MAX=0x7fffffff
define: SIG_ATOMIC_MIN=(-SIG_ATOMIC_MAX - 1)
define: SIG_ATOMIC_WIDTH=32
define: INT8_MAX=0x7f
define: INT16_MAX=0x7fff
define: INT32_MAX=0x7fffffff
define: INT64_MAX=0x7fffffffffffffffLL
define: UINT8_MAX=0xff
define: UINT16_MAX=0xffff
define: UINT32_MAX=0xffffffffU
define: UINT64_MAX=0xffffffffffffffffULL
define: INT_LEAST8_MAX=0x7f
define: __INT8_C(c)=c
define: INT_LEAST8_WIDTH=8
define: INT_LEAST16_MAX=0x7fff
define: __INT16_C(c)=c
define: INT_LEAST16_WIDTH=16
define: INT_LEAST32_MAX=0x7fffffff
define: __INT32_C(c)=c
define: INT_LEAST32_WIDTH=32
define: INT_LEAST64_MAX=0x7fffffffffffffffLL
define: __INT64_C(c)=c ## LL
define: INT_LEAST64_WIDTH=64
define: UINT_LEAST8_MAX=0xff
define: __UINT8_C(c)=c
define: UINT_LEAST16_MAX=0xffff
define: __UINT16_C(c)=c
define: UINT_LEAST32_MAX=0xffffffffU
define: __UINT32_C(c)=c ## U
define: UINT_LEAST64_MAX=0xffffffffffffffffULL
define: __UINT64_C(c)=c ## ULL
define: INT_FAST8_MAX=0x7f
define: INT_FAST8_WIDTH=8
define: INT_FAST16_MAX=0x7fffffff
define: INT_FAST16_WIDTH=32
define: INT_FAST32_MAX=0x7fffffff
define: INT_FAST32_WIDTH=32
define: INT_FAST64_MAX=0x7fffffffffffffffLL
define: INT_FAST64_WIDTH=64
define: UINT_FAST8_MAX=0xff
define: UINT_FAST16_MAX=0xffffffffU
define: UINT_FAST32_MAX=0xffffffffU
define: UINT_FAST64_MAX=0xffffffffffffffffULL
define: INTPTR_MAX=0x7fffffff
define: INTPTR_WIDTH=32
define: UINTPTR_MAX=0xffffffffU
define: __GCC_IEC_559=2
define: __GCC_IEC_559_COMPLEX=2
define: FLT_EVAL_METHOD=0
define: FLT_EVAL_METHOD_TS_18661_3=0
define: DEC_EVAL_METHOD=2
define: FLT_RADIX=2
define: FLT_MANT_DIG=24
define: FLT_DIG=6
define: FLT_MIN_EXP=(-125)
define: FLT_MIN_10_EXP=(-37)
define: FLT_MAX_EXP=128
define: FLT_MAX_10_EXP=38
define: FLT_DECIMAL_DIG=9
define: FLT_MAX=3.4028234663852886e+38F
define: FLT_MIN=1.1754943508222875e-38F
define: FLT_EPSILON=1.1920928955078125e-7F
define: FLT_DENORM_MIN=1.4012984643248171e-45F
define: FLT_HAS_DENORM=1
define: FLT_HAS_INFINITY=1
define: FLT_HAS_QUIET_NAN=1
define: DBL_MANT_DIG=53
define: DBL_DIG=15
define: DBL_MIN_EXP=(-1021)
define: DBL_MIN_10_EXP=(-307)
define: DBL_MAX_EXP=1024
define: DBL_MAX_10_EXP=308
define: DBL_DECIMAL_DIG=17
define: DBL_MAX=((double)1.7976931348623157e+308L)
define: DBL_MIN=((double)2.2250738585072014e-308L)
define: DBL_EPSILON=((double)2.2204460492503131e-16L)
define: DBL_DENORM_MIN=((double)4.9406564584124654e-324L)
define: DBL_HAS_DENORM=1
define: DBL_HAS_INFINITY=1
define: DBL_HAS_QUIET_NAN=1
define: LDBL_MANT_DIG=53
define: LDBL_DIG=15
define: LDBL_MIN_EXP=(-1021)
define: LDBL_MIN_10_EXP=(-307)
define: LDBL_MAX_EXP=1024
define: LDBL_MAX_10_EXP=308
define: DECIMAL_DIG=17
define: LDBL_DECIMAL_DIG=17
define: LDBL_MAX=1.7976931348623157e+308L
define: LDBL_MIN=2.2250738585072014e-308L
define: LDBL_EPSILON=2.2204460492503131e-16L
define: LDBL_DENORM_MIN=4.9406564584124654e-324L
define: LDBL_HAS_DENORM=1
define: LDBL_HAS_INFINITY=1
define: LDBL_HAS_QUIET_NAN=1
define: FLT32_MANT_DIG=24
define: FLT32_DIG=6
define: FLT32_MIN_EXP=(-125)
define: FLT32_MIN_10_EXP=(-37)
define: FLT32_MAX_EXP=128
define: FLT32_MAX_10_EXP=38
define: FLT32_DECIMAL_DIG=9
define: FLT32_MAX=3.4028234663852886e+38F32
define: FLT32_MIN=1.1754943508222875e-38F32
define: FLT32_EPSILON=1.1920928955078125e-7F32
define: FLT32_DENORM_MIN=1.4012984643248171e-45F32
define: FLT32_HAS_DENORM=1
define: FLT32_HAS_INFINITY=1
define: FLT32_HAS_QUIET_NAN=1
define: FLT64_MANT_DIG=53
define: FLT64_DIG=15
define: FLT64_MIN_EXP=(-1021)
define: FLT64_MIN_10_EXP=(-307)
define: FLT64_MAX_EXP=1024
define: FLT64_MAX_10_EXP=308
define: FLT64_DECIMAL_DIG=17
define: FLT64_MAX=1.7976931348623157e+308F64
define: FLT64_MIN=2.2250738585072014e-308F64
define: FLT64_EPSILON=2.2204460492503131e-16F64
define: FLT64_DENORM_MIN=4.9406564584124654e-324F64
define: FLT64_HAS_DENORM=1
define: FLT64_HAS_INFINITY=1
define: FLT64_HAS_QUIET_NAN=1
define: FLT32X_MANT_DIG=53
define: FLT32X_DIG=15
define: FLT32X_MIN_EXP=(-1021)
define: FLT32X_MIN_10_EXP=(-307)
define: FLT32X_MAX_EXP=1024
define: FLT32X_MAX_10_EXP=308
define: FLT32X_DECIMAL_DIG=17
define: FLT32X_MAX=1.7976931348623157e+308F32x
define: FLT32X_MIN=2.2250738585072014e-308F32x
define: FLT32X_EPSILON=2.2204460492503131e-16F32x
define: FLT32X_DENORM_MIN=4.9406564584124654e-324F32x
define: FLT32X_HAS_DENORM=1
define: FLT32X_HAS_INFINITY=1
define: FLT32X_HAS_QUIET_NAN=1
define: DEC32_MANT_DIG=7
define: DEC32_MIN_EXP=(-94)
define: DEC32_MAX_EXP=97
define: DEC32_MIN=1E-95DF
define: DEC32_MAX=9.999999E96DF
define: DEC32_EPSILON=1E-6DF
define: DEC32_SUBNORMAL_MIN=0.000001E-95DF
define: DEC64_MANT_DIG=16
define: DEC64_MIN_EXP=(-382)
define: DEC64_MAX_EXP=385
define: DEC64_MIN=1E-383DD
define: DEC64_MAX=9.999999999999999E384DD
define: DEC64_EPSILON=1E-15DD
define: DEC64_SUBNORMAL_MIN=0.000000000000001E-383DD
define: DEC128_MANT_DIG=34
define: DEC128_MIN_EXP=(-6142)
define: DEC128_MAX_EXP=6145
define: DEC128_MIN=1E-6143DL
define: DEC128_MAX=9.999999999999999999999999999999999E6144DL
define: DEC128_EPSILON=1E-33DL
define: DEC128_SUBNORMAL_MIN=0.000000000000000000000000000000001E-6143DL
define: SFRACT_FBIT=7
define: SFRACT_IBIT=0
define: SFRACT_MIN=(-0.5HR-0.5HR)
define: SFRACT_MAX=0X7FP-7HR
define: SFRACT_EPSILON=0x1P-7HR
define: USFRACT_FBIT=8
define: USFRACT_IBIT=0
define: USFRACT_MIN=0.0UHR
define: USFRACT_MAX=0XFFP-8UHR
define: USFRACT_EPSILON=0x1P-8UHR
define: FRACT_FBIT=15
define: FRACT_IBIT=0
define: FRACT_MIN=(-0.5R-0.5R)
define: FRACT_MAX=0X7FFFP-15R
define: FRACT_EPSILON=0x1P-15R
define: UFRACT_FBIT=16
define: UFRACT_IBIT=0
define: UFRACT_MIN=0.0UR
define: UFRACT_MAX=0XFFFFP-16UR
define: UFRACT_EPSILON=0x1P-16UR
define: LFRACT_FBIT=31
define: LFRACT_IBIT=0
define: LFRACT_MIN=(-0.5LR-0.5LR)
define: LFRACT_MAX=0X7FFFFFFFP-31LR
define: LFRACT_EPSILON=0x1P-31LR
define: ULFRACT_FBIT=32
define: ULFRACT_IBIT=0
define: ULFRACT_MIN=0.0ULR
define: ULFRACT_MAX=0XFFFFFFFFP-32ULR
define: ULFRACT_EPSILON=0x1P-32ULR
define: LLFRACT_FBIT=63
define: LLFRACT_IBIT=0
define: LLFRACT_MIN=(-0.5LLR-0.5LLR)
define: LLFRACT_MAX=0X7FFFFFFFFFFFFFFFP-63LLR
define: LLFRACT_EPSILON=0x1P-63LLR
define: ULLFRACT_FBIT=64
define: ULLFRACT_IBIT=0
define: ULLFRACT_MIN=0.0ULLR
define: ULLFRACT_MAX=0XFFFFFFFFFFFFFFFFP-64ULLR
define: ULLFRACT_EPSILON=0x1P-64ULLR
define: SACCUM_FBIT=7
define: SACCUM_IBIT=8
define: SACCUM_MIN=(-0X1P7HK-0X1P7HK)
define: SACCUM_MAX=0X7FFFP-7HK
define: SACCUM_EPSILON=0x1P-7HK
define: USACCUM_FBIT=8
define: USACCUM_IBIT=8
define: USACCUM_MIN=0.0UHK
define: USACCUM_MAX=0XFFFFP-8UHK
define: USACCUM_EPSILON=0x1P-8UHK
define: ACCUM_FBIT=15
define: ACCUM_IBIT=16
define: ACCUM_MIN=(-0X1P15K-0X1P15K)
define: ACCUM_MAX=0X7FFFFFFFP-15K
define: ACCUM_EPSILON=0x1P-15K
define: UACCUM_FBIT=16
define: UACCUM_IBIT=16
define: UACCUM_MIN=0.0UK
define: UACCUM_MAX=0XFFFFFFFFP-16UK
define: UACCUM_EPSILON=0x1P-16UK
define: LACCUM_FBIT=31
define: LACCUM_IBIT=32
define: LACCUM_MIN=(-0X1P31LK-0X1P31LK)
define: LACCUM_MAX=0X7FFFFFFFFFFFFFFFP-31LK
define: LACCUM_EPSILON=0x1P-31LK
define: ULACCUM_FBIT=32
define: ULACCUM_IBIT=32
define: ULACCUM_MIN=0.0ULK
define: ULACCUM_MAX=0XFFFFFFFFFFFFFFFFP-32ULK
define: ULACCUM_EPSILON=0x1P-32ULK
define: LLACCUM_FBIT=31
define: LLACCUM_IBIT=32
define: LLACCUM_MIN=(-0X1P31LLK-0X1P31LLK)
define: LLACCUM_MAX=0X7FFFFFFFFFFFFFFFP-31LLK
define: LLACCUM_EPSILON=0x1P-31LLK
define: ULLACCUM_FBIT=32
define: ULLACCUM_IBIT=32
define: ULLACCUM_MIN=0.0ULLK
define: ULLACCUM_MAX=0XFFFFFFFFFFFFFFFFP-32ULLK
define: ULLACCUM_EPSILON=0x1P-32ULLK
define: QQ_FBIT=7
define: QQ_IBIT=0
define: HQ_FBIT=15
define: HQ_IBIT=0
define: SQ_FBIT=31
define: SQ_IBIT=0
define: DQ_FBIT=63
define: DQ_IBIT=0
define: TQ_FBIT=127
define: TQ_IBIT=0
define: UQQ_FBIT=8
define: UQQ_IBIT=0
define: UHQ_FBIT=16
define: UHQ_IBIT=0
define: USQ_FBIT=32
define: USQ_IBIT=0
define: UDQ_FBIT=64
define: UDQ_IBIT=0
define: UTQ_FBIT=128
define: UTQ_IBIT=0
define: HA_FBIT=7
define: HA_IBIT=8
define: SA_FBIT=15
define: SA_IBIT=16
define: DA_FBIT=31
define: DA_IBIT=32
define: TA_FBIT=63
define: TA_IBIT=64
define: UHA_FBIT=8
define: UHA_IBIT=8
define: USA_FBIT=16
define: USA_IBIT=16
define: UDA_FBIT=32
define: UDA_IBIT=32
define: UTA_FBIT=64
define: UTA_IBIT=64
define: REGISTER_PREFIX=
define: USER_LABEL_PREFIX=
define: GNUC_STDC_INLINE=1
define: NO_INLINE=1
define: CHAR_UNSIGNED=1
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: __GCC_ATOMIC_BOOL_LOCK_FREE=2
define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
define: __GCC_ATOMIC_INT_LOCK_FREE=2
define: __GCC_ATOMIC_LONG_LOCK_FREE=2
define: __GCC_ATOMIC_LLONG_LOCK_FREE=2
define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
define: __PRAGMA_REDEFINE_EXTNAME=1
define: SIZEOF_WCHAR_T=4
define: SIZEOF_WINT_T=4
define: SIZEOF_PTRDIFF_T=4
define: __ARM_FEATURE_DSP=1
define: __ARM_FEATURE_QBIT=1
define: __ARM_FEATURE_SAT=1
define: __ARM_FEATURE_UNALIGNED=1
define: __ARM_32BIT_STATE=1
define: __ARM_FEATURE_LDREX=15
define: __ARM_FEATURE_CLZ=1
define: __ARM_FEATURE_SIMD32=1
define: __ARM_SIZEOF_MINIMAL_ENUM=4
define: __ARM_SIZEOF_WCHAR_T=4
define: __ARM_ARCH_PROFILE=65
define: arm=1
define: __ARM_ARCH=7
define: __ARM_ARCH_ISA_ARM=1
define: APCS_32=1
define: thumb=1
define: thumb2=1
define: THUMBEL=1
define: __ARM_ARCH_ISA_THUMB=2
define: ARMEL=1
define: VFP_FP=1
define: __ARM_FP=12
define: THUMB_INTERWORK=1
define: ARM_ARCH_7A=1
define: __ARM_PCS_VFP=1
define: ARM_EABI=1
define: ARM_ASM_SYNTAX_UNIFIED=1
define: __GXX_TYPEINFO_EQUALITY_INLINE=0
define: gnu_linux=1
define: __linux=1
define: linux=1
define: linux=1
define: __unix=1
define: unix=1
define: unix=1
define: ELF=1
define: _STDC_PREDEF_H=1
define: STDC_IEC_559=1
define: STDC_IEC_559_COMPLEX=1
define: STDC_ISO_10646=201505L
define: STDC_NO_THREADS=1
define: CONFIG_GPIOLIB=y
define: CONFIG_OF_GPIO=y
other: --gcc
other: --gnu_version=70500
stdver: c11
intelliSenseMode: gcc-arm
Queueing IntelliSense update for files in translation unit of: /home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c
cpptools/finishUpdateSquiggles
Error squiggle count: 0
terminating child process: 31976
Update IntelliSense time (sec): 2.59
cpptools/getSemanticTokens: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 9)
textDocument/completion: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 10)
auto_complete::handle_completion: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (201:8)
Offering completion

Screenshots

See attached.
no_suggestions

Additional context

@PradKalkar
Copy link

Hey, I am also facing the same problem. But, please can you tell me how to go back to 0.29.0 and cancel auto-updates

@Rajat-S-Patel
Copy link

Hey, I am also facing the same problem. But, please can you tell me how to go back to 0.29.0 and cancel auto-updates

First of all go to C/C++ Extension settings then make update channel default, Then you can right click on setting symbol of C/C++ Extension from the Extension tab, on settings you can find 'install another version'. You can select previous versions like 0.29.0

@Rajat-S-Patel
Copy link

Same issue on windows, but it's working on my another system with linux

@hgonomeg
Copy link

Same here on openSUSE Tumbleweed.

@marco-fam
Copy link

marco-fam commented Aug 24, 2020

Additional comments:
I am getting the following debug output from the cpp extension:
textDocument/hover: file:///software/repo/alarm/alarm/main_tree_test.cpp (id: 18)
Quick info operation failed: FE: 'Compiler exited with error - No IL available'
using Tag Parser for quick info

I have verified that the intellisense breaks when updating from 0.30.0-insiders2 to 0.30.0-insiders3

Using gcc compiler with a mixture of c and c++ files for an embedded system

@sean-mcmanus
Copy link
Collaborator

You should be able to change the C_Cpp.updateChannel setting to "Default" to switch to 0.29.0.

We don't have a repro yet for the 0.30.0-insiders3 IntelliSense regression. Does anyone have a minimum repro?

@sean-mcmanus sean-mcmanus added bug insiders Currently only repros with our latest Insiders release. Language Service more info needed The issue report is not actionable in its current state regression A bug that didn't exist in a previous release labels Aug 24, 2020
@sean-mcmanus
Copy link
Collaborator

@adambrickman Did 0.30.0-insiders2 work? Can you compare the log diagnostics output with 0.29.0 to see what is different? We added support for native ARM IntelliSense with 0.30.0-insiders3, but there might be some issue when cross-compiling for ARM.

@adambrickman
Copy link
Author

Hi @sean-mcmanus ,
I installed 0.30.0-insiders2 by downloading https://github.com/microsoft/vscode-cpptools/releases/download/0.30.0-insiders2/cpptools-linux.vsix and installing manually. It seems this version is OK.
Thanks,
Adam

@sean-mcmanus
Copy link
Collaborator

Which features of IntelliSense are broken? Just completion? Does go to definition on local variables work? Or hover over "auto" or numbers?

Is anyone able to identify repro requirements? Does it work with simpler projects? Is this only on Linux? Is it only with arm IntelliSense modes? Does it only repro with C and not C++?

@adambrickman
Copy link
Author

Which features of IntelliSense are broken? Just completion? Does go to definition on local variables work? Or hover over "auto" or numbers?

  • completion - broken
  • go to definition - works, for both local variables and variables declared elsewhere (perhaps in some include file that's not even open)
  • Not sure what you mean, hover over "auto"? It does look like if I hover over a field in a struct, I'll get the backing information:
    image

Is anyone able to identify repro requirements? Does it work with simpler projects? Is this only on Linux? Is it only with arm IntelliSense modes? Does it only repro with C and not C++?

I've only tried on Ubuntu Linux, sorry. It does seem that a simpler C project is not suffering this problem. With the Linux kernel project, it does not seem to matter which IntelliSense mode is chosen.

If it helps my extension's C/C++ settings are:
Autocomplete = Default
Intelli Sense Mode = gcc-arm
^ I tried changing this to blank (default) and gcc-x86 and the problem still repros, so I think this does not matter.
Intelli Sense Cache Size = 5120 MB
Intelli Sense Engine = Default
Intelli Sense Engine Fallback = Disabled

@sean-mcmanus sean-mcmanus pinned this issue Aug 25, 2020
@ryan-holt-1
Copy link

I'm also having this issue. For me, it seems like everything works except autocomplete. Specifically, autocomplete seems to work once for a given file but then it never works for that file again unless I relaunch VSCode.

I do not have this problem if I revert to 0.29.0 -- autocomplete always works. I cannot try 0.30.0insiders2 because of #5848.

I'm working on Debian 10, x64 in an all C++ project. I'll try to gather more information.

@sean-mcmanus sean-mcmanus changed the title Version 0.30.0-insiders3 breaks Intellisense Version 0.30.0-insiders3 breaks IntelliSense completion Aug 25, 2020
@sean-mcmanus sean-mcmanus self-assigned this Aug 25, 2020
@sean-mcmanus sean-mcmanus added this to the 0.30.0 milestone Aug 25, 2020
@sean-mcmanus sean-mcmanus added the investigate: repro This issue's repro steps needs to be investigated/confirmed label Aug 25, 2020
@sean-mcmanus
Copy link
Collaborator

Can someone who is reproing this see if adding "C_Cpp.intelliSenseCacheSize": 0 fixes it?

We haven't been able to find a repro yet:

image

@adambrickman
Copy link
Author

@sean-mcmanus Thanks for helping investigate this thoroughly, it is appreciated. I tried "C_Cpp.intelliSenseCacheSize": 0 and the problem still exists. I did also try 'Reset the IntelliSense database', and opening the base repository folder as a new workspace, but no luck.

Have you tried to repro on a reasonably large repository? Linux kernel make a good test case - it is large but not to the same degree as full Android builds. Perhaps try 'git clone https://github.com/raspberrypi/linux' and checkout branch rpi-4.19.y. Does that repro for you?

@sean-mcmanus
Copy link
Collaborator

I'm not reproing the issue with linux/arch/alpha/boot/tools/mkbb.c (with gcc 10.2). Do you know a particular file that has a problem? I could try other files tomorrow.
image

@adambrickman
Copy link
Author

adambrickman commented Aug 26, 2020

That file repros for me. Going back to 0.30.0-insiders2 is OK.

@sean-mcmanus
Copy link
Collaborator

sean-mcmanus commented Aug 26, 2020

Just to double-check, there is "normal" logging messages after "Offering completion", right? We just want to confirm that the processes are stuck.

My (non) repro is with Ubuntu 20 and arm-linux-gnueabihf-gcc (Ubuntu 9.3.0-10ubuntu1) 9.3.0, not sure yet if the OS or gcc versions are important for the repro.

@adambrickman
Copy link
Author

It will continue to log but that is the last message I see after I ctrl+space, until I do something else.

I don't think the gcc version is important, since I'm only using VS Code as a smart editor. I use the terminal to do the actual compiling. OS may be important, not quite sure on that front.

@sean-mcmanus
Copy link
Collaborator

If anyone wants to try a preview of a Makefile extension that should configure things correctly instead of relying on recursive includes, see the comment at #5588 (comment) .

@ryan-holt-1
Copy link

@sean-mcmanus: I'm configuring things with a compile_commands.json file. I'm assuming that I would not benefit from the Makefile extension?

I see this autocomplete issue in the insiders release in certain files (but not all).

@sean-mcmanus
Copy link
Collaborator

@ryan-holt-1 Yeah, if you're using compile_commands.json, then your configuration should be okay unless you're hitting a bug with our handling of that. For you repro, what do you see in the C/C++ logging (maybe if C_Cpp.loggingLevel is set to "Debug"). Is there a "Failed" or "No IL" message?

@ryan-holt-1
Copy link

@sean-mcmanus: The only thing that looks suspicious in the logs is this:

auto_complete::handle_completion: file:///local-ssd/ryanholt/ImplicitExpansion/matlab/src/cgir_support/dom_core/analysis/livenessAnalysis/KillSet.cpp (18:26)
Offering completion
sending 1 changes to server
sending 1 changes to server
sending 1 changes to server
Failed to read response from server: 8

I see "Failed to read response from server: 8" as soon as I type the "." or "->". This only happens the first time I try asking for completion in a file. If I try it again, nothing happens.

Note that in 0.29.0, I do not see this. Instead, I see:

auto_complete::handle_completion: file:///local-ssd/ryanholt/ImplicitExpansion/matlab/src/cgir_support/dom_core/analysis/livenessAnalysis/KillSet.cpp (18:26)
Offering completion
sending 1 changes to server
sending 1 changes to server
completionItem/resolve (id: 47)

@sean-mcmanus
Copy link
Collaborator

@ryan-holt-1 Yes, you're hitting a crash in cpptools-srv -- could be the same as #5960, which we have a repro for. If you can attach a debugger to cpptools-srv to get a crash call stack, I can determine if it's the same crash or different one.

@ryan-holt-1
Copy link

@sean-mcmanus:

Thread 4 "cpptools-srv" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fed792f1700 (LWP 163755)]
0x00000000005d3ed9 in an_edge_symbol_impl_tedge::symbol::new_object(a_symbol*) ()
(gdb) bt 10
#0 0x00000000005d3ed9 in an_edge_symbol_impl_tedge::symbol::new_object(a_symbol*) ()
#1 0x00000000005c2305 in edge::class_scope_entry::get_using_declarations(edge::access_specifier_e, edge::listedge::symbol*, edge::listedge::symbol*, edge::listedge::symbol*, edge::listedge::symbol*) const ()
#2 0x00000000005fe9c2 in get_scope_member_list(edge::scope_entry*, edge::listedge::symbol*, edge::listedge::symbol*, edge::listedge::symbol*, edge::listedge::symbol*, edge::listedge::namespace_symbol*, bool, bool, bool, bool) ()
#3 0x00000000005fe250 in edge::intellisense_operation::get_auto_complete_members(edge::member_selection_entry
&, edge::scope_entry*&, edge::listedge::symbol*, edge::listedge::symbol*, edge::listedge::symbol*, edge::listedge::symbol*, edge::intellisense_operation::member_list_kind, bool, bool&, bool&, bool&) ()
#4 0x0000000000596eba in edge_intellisense_server_impl::handle_completion(microsoft::cpp::intellisense::CompletionRequest const&)::{lambda(edge::intellisense_operation&, microsoft::cpp::intellisense::CompletionResponse&)#1}::operator()(edge::intellisense_operation&, microsoft::cpp::intellisense::CompletionResponse&) const ()
#5 0x0000000000596932 in void edge_intellisense_operation::perform_isense_operation_helpermicrosoft::cpp::intellisense::CompletionResponse(char const*, edge::intellisense_operation&, microsoft::cpp::intellisense::DocumentPosition const&, std::function<void (edge::intellisense_operation&, microsoft::cpp::intellisense::CompletionResponse&)>, microsoft::cpp::intellisense::CompletionResponse&, edge::allocator*, snapshot::snapshot_session_t) ()
#6 0x000000000059614b in void edge_intellisense_operation::perform_isense_operationmicrosoft::cpp::intellisense::CompletionResponse(char const*, microsoft::cpp::intellisense::DocumentPosition const&, std::function<void (edge::intellisense_operation&, microsoft::cpp::intellisense::CompletionResponse&)>, microsoft::cpp::intellisense::CompletionResponse&, snapshot::snapshot_session_t, bool, edge::allocator*) ()
#7 0x0000000000579cbf in edge_intellisense_server_impl::handle_completion(microsoft::cpp::intellisense::CompletionRequest const&) ()
#8 0x00000000005a699c in work_queue::worker_proc() ()
#9 0x00000000009bc962 in std::_Function_handler<void (), msvc::thread_pool::enqueue(std::function<void ()>, std::future*)::$_2>::_M_invoke(std::_Any_data const&) ()

@sean-mcmanus
Copy link
Collaborator

@ryan-holt-1 Yes, that is the same crash as #5960 . I'm currently investigating that. The hit count is not severely high, but it could still be our highest hitting crash (and a regression).

@sean-mcmanus
Copy link
Collaborator

@ryan-holt-1 I filed a bug on VS at https://developercommunity.visualstudio.com/content/problem/1170465/c-intellisense-crashes-from-completion-in-clang-mo.html and also emailed the VC team directly (i.e. the issue is caused by recent updates to our shared IntelliSense parser). I'm not sure how many other users on this thread were hitting that issue versus the other non-crash issue in the recursive includes scenario.

@ryan-holt-1
Copy link

@sean-mcmanus: Thank you!

@sean-mcmanus
Copy link
Collaborator

With https://github.com/microsoft/vscode-cpptools/releases/tag/0.30.0-insiders4 we added recursive includes diagnostics when conflicting includePaths are detected, which could help resolve the "No IL" issues. The completion crash is being tracked by #5960 . If there are other issues, please file a new issue.

@marco-fam
Copy link

marco-fam commented Sep 2, 2020

I don't know if I should report this under an already opened issue?
Anyway let me know if I need to move it.

After reading all the comments here I was able to isolate the include path that was giving me the
textDocument/hover: file:///software/repo/alarm/alarm/main_tree_test.cpp (id: 18)
Quick info operation failed: FE: 'Compiler exited with error - No IL available'

However the issue is still present in 0.30.0-insiders4 as I have just tested it.

It seems that both the system headers on linux and out RTEMS library headers will cause the intellisense problem if we included
the line marked bold in the cpp.includePath.
"${workspaceFolder}/RTEMS/board",
"${workspaceFolder}/RTEMS/board/include",
"${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/include",<-- // If this line is commented out intellisense works
"${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/include/c++/4.9.3",
"${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/include/c++/4.9.3/nios2-rtems4.11",
"${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/include/c++/4.9.3/backward",
"${workspaceFolder}/RTEMS/rtems4.11/lib/gcc/nios2-rtems4.11/4.9.3/include",
"${workspaceFolder}/RTEMS/rtems4.11/lib/gcc/nios2-rtems4.11/4.9.3/include-fixed",
"${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/nios2_alt/lib/include",
"${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/nios2_alt/lib/include/HAL",
"${workspaceFolder}/RTEMS/RTEMS_devel/rtems/cpukit/score/cpu/nios2"

The folder contains include files such as math.h etc.
image

If I comment out "${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/include" I will instead hit the system headers located in "usr/include/c++/7/math.h" and then intellisense works again!

image

@sean-mcmanus
Copy link
Collaborator

@marco-fam The includePath ordering should match what you use to compile your code, so that the correct file can be included. It seems like "${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/include" and maybe other sysroot-like include paths should only be used for files that are intended to use those. You might also look into setting the C_Cpp.default.systemIncludePath setting or making sure compilerPath or compilerArgs are working as intended. Using C/C++: Log Diagnostics can help check if the includePaths are a being set correctly.

@sean-mcmanus
Copy link
Collaborator

@ryan-holt-1 The new_object crash is fixed with https://github.com/microsoft/vscode-cpptools/releases/tag/0.30.0-insiders5 .

@Hughen
Copy link

Hughen commented Sep 10, 2020

@ryan-holt-1 The new_object crash is fixed with https://github.com/microsoft/vscode-cpptools/releases/tag/0.30.0-insiders5 .

always unable to auto complete...

Failed to read response from server: 20

@ryan-holt-1
Copy link

@sean-mcmanus: Thanks! Can confirm that everything is working for me now.

@adambrickman
Copy link
Author

@sean-mcmanus - Unfortunately, insiders5 still has the broken IntelliSense for me. No crashes though.

My include path is simply this:
"includePath": [
"${workspaceFolder}/**"
],

Is that incorrect?

@sean-mcmanus
Copy link
Collaborator

sean-mcmanus commented Sep 10, 2020

@Hughen You're hitting a different crash. If you can attach a debugger to the cpptools-srv process to get a call stack that would help us identify which crash you're hitting.

@adambrickman If you're using a Linux repo, using "${workspaceFolder}/**" unlikely to give good results because it will pick up system headers in cases where workspace headers are required (which 0.30.0-insiders5 has added some diagnostics logging to identify), and also some files require forced includes to be specified (-include in the makefile). You would need to check what the makefile is using to compile the particular file and make sure the includes, defines, forcedInclude, etc. is correct. Our pending Makefile extension is expected to be able to configure these automatically.

@adambrickman
Copy link
Author

@sean-mcmanus - I think there is something more to it than this, especially since this behavior is new (never had an issue with this prior to 0.30.0). Also, regardless of headers, shouldn't vscode be able to detect local function arguments or variables? Intellisense is totally dead.

E.g.
int myFun(int myData) {
myD
^ // trying to intellisense here returns nothing, even though it is declared in the function arguments

int someVariable;
someV
^ // trying to Intellisense here does nothing either, even though it is declared in the very previous line (or, in real code, at the top of the function).
...
}

@sean-mcmanus
Copy link
Collaborator

sean-mcmanus commented Sep 11, 2020

@adambrickman You're getting the "No IL" in the logging, right? This doesn't repro in a simple project with a single test.cpp file, right? If you get the "No IL" then all IntelliSense functionality like local variable goto definition would break in addition to completion. If the TU is in a non-compileable state due to issues in the headers, then the behavior is non-deterministic so it may have worked correctly in 0.29.0, but that would just have been "lucky". It is still possible you're hitting a real regression bug, but I would need to get some sort of repro.

@adambrickman
Copy link
Author

@sean-mcmanus - Strange. This is failing in multiple projects (all of which are various versions of linux kernels). The thing I have in common in them is my include path is either blank or "${workspaceFolder}/**". The code-workspace is located in the root of the kernel folder. If I go back to version 0.29.0, IntelliSense starts working again. 0.28.3 works as well, I just tried going back. So does 0.27.1 (that's as far as I've tried, but I'd be happy to regress further if it would be helpful). But once I install 0.30.x, it breaks.
It seems something has fundamentally changed in that release.

@sean-mcmanus
Copy link
Collaborator

@adambrickman The usage of "${workspaceFolder}/**" can generate non-deterministic includePath orderings. You can see the orderings we choose via running C/C++ log diagnostics. If you can find a Linux source file that repros the issue with a set of includePath, defines, forcedInclude, etc. that will actually compile, then we could look into fixing that bug, either via looking at the recursive include paths results from C/C++ Log Diagnostics or manually setting the includePaths.

I'm not aware of any particular change that could cause this, other than lots of parser changes, mostly in support of new C++20 stuff. The "No IL" means our parser hit an error that wasn't recoverable (and also wasn't crash inducing).

@sean-mcmanus
Copy link
Collaborator

@adambrickman To explain this further -- the error is most likely occurring in a header file, which may have been "recoverable" in 0.29.0, but then due to undefined behavior in regards to how error handling is done, it could cause it to fail in 0.30.0-insiders, because the parser might be in a state where it can't continue to give additional errors due to previous errors (in the headers, not shown in the opened source file that his hovered over). If we implemented #3873 , then the errors in the header files would most likely make the issue easier to diagnose.

@adambrickman
Copy link
Author

@sean-mcmanus - Thanks for the explanation. I will have to try to get a consistent repro on a clean system when I get a chance, so it will be easier to investigate what is wrong. It will help cut down on the variables. I'll post back to this thread if that is OK if/when I get some results.

@sean-mcmanus
Copy link
Collaborator

sean-mcmanus commented Sep 16, 2020

@adambrickman We found/fixed the root cause -- IntelliSense was incorrectly aborting after any #error occurred (see #6114). It should be fixed in the next update.

@bobbrow
Copy link
Member

bobbrow commented Sep 17, 2020

We published an insiders release with the fix for this. Please try it out and let us know if you continue to have issues.
https://github.com/microsoft/vscode-cpptools/releases/tag/1.0.1-insiders

@github-actions github-actions bot locked and limited conversation to collaborators Oct 8, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Feature: Auto-complete fixed Check the Milestone for the release in which the fix is or will be available. insiders Currently only repros with our latest Insiders release. Language Service more info needed The issue report is not actionable in its current state regression A bug that didn't exist in a previous release
Projects
None yet
Development

No branches or pull requests

9 participants