microsoft / microsoft/vscode-makefile-tools
"cannot open source file "\"" error when using makefile tools with a computed include that is escaped with backslashes
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 242
- Forks
- 78
- PR merge metrics
- No merged PRs in 30d
Description
Bug type: Language Service
Describe the bug
- OS and Version: MacOS 11.6.4
- VS Code Version: 1.66.2
- C/C++ Extension Version: 1.9.8
- Other extensions installed: C++ Extension pack, MakeFile Tools v0.5.0, gitlens, github pull requests
- If using SSH remote, specify OS of remote machine: Ubuntu 18.04
- Description
-C/C++ project compiled by makefile, using a computed include, for which the macro is defined on the command line with backslashes escaping it's double quotes
Steps to reproduce
- Create a trivial makefile based C project as shown in code sample below
- issue
makefile.configurecommand through command pallete to activate the makefile extension - Observe error squiggles on the
#includeline in main.c, and that intellisense has falled back on the tag parser despite having all the information necessary to perform full intellisense
Expected behavior
- C++ language server should parse the macro, use it to fill in the computed include, and properly use that to enable full intellisense
- This is expected because GNU Make has no issue with this use case, and the code builds and runs without warnings or errors
- For reference the relevant page of GCC docs is here
Code sample and logs
main.cwith contents:
#include IO_HEADER
int main(void) {
printf("Hello World!\n");
}
Makefilewith contents:
CFLAGS := -DIO_HEADER="\"stdio.h\""
hello: main.c
$(CC) $(CFLAGS) -o $@ $<
all: hello
.PHONY: all
-
Configurations in
c_cpp_properties.json: none. completely default config is used -
Logs from running
C/C++: Log Diagnosticsfrom the VS Code command palette
-------- Diagnostics - 5/5/2022, 5:21:33 PM
Version: 1.9.8
Current Configuration:
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu11",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64",
"compilerArgs": [],
"intelliSenseModeIsExplicit": false,
"cStandardIsExplicit": false,
"cppStandardIsExplicit": false,
"mergeConfigurations": false,
"compilerPathIsExplicit": false,
"configurationProvider": "ms-vscode.makefile-tools",
"browse": {
"path": [
"${workspaceFolder}/**"
],
"limitSymbolsToIncludedHeaders": true
}
}
Custom browse configuration:
{
"browsePath": [
"/home/derek/vscode-test"
],
"compilerArgs": [
"-o",
"hello",
"main.c"
],
"compilerPath": "/usr/bin/cc",
"windowsSdkVersion": ""
}
Custom configurations:
[ /home/derek/vscode-test/main.c ]
{
"defines": [
"IO_HEADER=\"\\\"stdio.h\\\"\""
],
"includePath": [],
"forcedInclude": [],
"compilerPath": "/usr/bin/cc",
"compilerArgs": [
"-o",
"hello",
"main.c"
],
"windowsSdkVersion": ""
}
Translation Unit Mappings:
[ /home/derek/vscode-test/main.c ]:
/home/derek/vscode-test/main.c
Translation Unit Configurations:
[ /home/derek/vscode-test/main.c ]:
Process ID: 26129
Memory Usage: 11 MB
Compiler Path: /usr/bin/cc
Includes:
/usr/lib/gcc/x86_64-linux-gnu/7/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
Defines:
IO_HEADER="\"stdio.h\""
Standard Version: c11
IntelliSense Mode: linux-gcc-x64
Other Flags:
--gcc
--gnu_version=70500
Total Memory Usage: 11 MB
------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 4247
- Logs from the language server logging
loggingLevel: Debug
Custom configuration provider 'Makefile Tools' registered
Custom browse configuration received: {
"browsePath": [
"/home/derek/vscode-test"
],
"compilerArgs": [
"-o",
"hello",
"main.c"
],
"compilerPath": "/usr/bin/cc",
"windowsSdkVersion": ""
}
Custom browse configuration received: {
"browsePath": [
"/home/derek/vscode-test"
],
"compilerArgs": [
"-o",
"hello",
"main.c"
],
"compilerPath": "/usr/bin/cc",
"windowsSdkVersion": ""
}
Custom browse configuration received: {
"browsePath": [
"/home/derek/vscode-test"
],
"compilerArgs": [
"-o",
"hello",
"main.c"
],
"compilerPath": "/usr/bin/cc",
"windowsSdkVersion": ""
}
cpptools/didChangeCppProperties
Attempting to get defaults from C compiler in "compilerPath" property: '/usr/bin/gcc'
Compiler query command line: "/usr/bin/gcc" -std=gnu11 -Wp,-v -E -dM -x c -m64 /dev/null
terminating child process: 30334
Code browsing service initialized
Attempting to get defaults from C++ compiler in "compilerPath" property: '/usr/bin/gcc'
Compiler query command line: "/usr/bin/gcc" -std=gnu++14 -Wp,-v -E -dM -x c++ -m64 /dev/null
terminating child process: 30337
Folder: /usr/include/ will be indexed
Folder: /usr/lib/gcc/x86_64-linux-gnu/7/include/ will be indexed
Folder: /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/ will be indexed
Folder: /usr/local/include/ will be indexed
Folder: /home/derek/vscode-test/ will be indexed
cpptools/didChangeCustomBrowseConfiguration
Discovering files...
Attempting to get defaults from C++ compiler in "compilerPath" property: '/usr/bin/cc'
Querying compiler for default C++ language standard using command line: "/usr/bin/cc" -x c++ -E -dM /dev/null
Processing folder (recursive): /usr/include/
terminating child process: 30339
Detected language standard version: gnu++14
Querying compiler for default C language standard using command line: "/usr/bin/cc" -x c -E -dM /dev/null
Processing folder (recursive): /usr/lib/gcc/x86_64-linux-gnu/7/include/
Processing folder (recursive): /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/
Processing folder (recursive): /usr/local/include/
Processing folder (recursive): /home/derek/vscode-test/
Discovering files: 4247 file(s) processed
0 file(s) removed from database
Done discovering files.
Populating include completion cache.
Parsing remaining files...
Parsing: 0 files(s) processed
Done parsing remaining files.
terminating child process: 30341
Detected language standard version: gnu11
Querying compiler's default target using command line: "/usr/bin/cc" -dumpmachine
Compiler returned default target value: x86_64-linux-gnu
terminating child process: 30344
Compiler query command line: "/usr/bin/cc" -std=c++17 -Wp,-v -E -dM -x c++ -m64 /dev/null
terminating child process: 30351
Folder: /usr/lib/gcc/x86_64-linux-gnu/7/include/ will be indexed
Folder: /usr/local/include/ will be indexed
Folder: /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/ will be indexed
Folder: /usr/include/ will be indexed
Folder: /home/derek/vscode-test/ will be indexed
cpptools/didChangeCppProperties
cpptools/pauseParsing
cpptools/clearCustomConfigurations
cpptools/clearCustomConfigurations
cpptools/clearCustomConfigurations
cpptools/didChangeCustomBrowseConfiguration
Attempting to get defaults from C++ compiler in "compilerPath" property: '/usr/bin/cc'
cpptools/resumeParsing
cpptools/didChangeCustomBrowseConfiguration
Attempting to get defaults from C++ compiler in "compilerPath" property: '/usr/bin/cc'
cpptools/resumeParsing
Discovering files...
Processing folder (recursive): /usr/lib/gcc/x86_64-linux-gnu/7/include/
Processing folder (recursive): /usr/local/include/
Processing folder (recursive): /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/
Processing folder (recursive): /usr/include/
Processing folder (recursive): /home/derek/vscode-test/
Discovering files: 4247 file(s) processed
0 file(s) removed from database
Done discovering files.
Populating include completion cache.
Parsing remaining files...
Parsing: 0 files(s) processed
Done parsing remaining files.
cpptools/getCodeActions: /home/derek/vscode-test/main.c (id: 2)
cpptools/queryTranslationUnitSource: /home/derek/vscode-test/main.c (id: 3)
Custom configurations received:
uri: file:///home/derek/vscode-test/main.c
config: {
"defines": [
"IO_HEADER=\"\\\"stdio.h\\\"\""
],
"includePath": [],
"forcedInclude": [],
"compilerPath": "/usr/bin/cc",
"compilerArgs": [
"-o",
"hello",
"main.c"
],
"windowsSdkVersion": ""
}
cpptools/didChangeCustomConfiguration
Attempting to get defaults from C compiler in "compilerPath" property: '/usr/bin/cc'
Compiler query command line: "/usr/bin/cc" -std=gnu11 -Wp,-v -E -dM -x c -m64 /dev/null
terminating child process: 30388
textDocument/didOpen: /home/derek/vscode-test/main.c
cpptools/textEditorSelectionChange
cpptools/getDocumentSymbols: /home/derek/vscode-test/main.c (id: 4)
cpptools/textEditorSelectionChange
cpptools/getSemanticTokens: /home/derek/vscode-test/main.c (id: 5)
cpptools/getDocumentSymbols
cpptools/activeDocumentChange: /home/derek/vscode-test/main.c
sending compilation args for /home/derek/vscode-test/main.c
include: /usr/lib/gcc/x86_64-linux-gnu/7/include
include: /usr/local/include
include: /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
include: /usr/include/x86_64-linux-gnu
include: /usr/include
define: __SSP_STRONG__=3
define: __DBL_MIN_EXP__=(-1021)
define: __FLT32X_MAX_EXP__=1024
define: __UINT_LEAST16_MAX__=0xffff
define: __ATOMIC_ACQUIRE=2
define: __FLT128_MAX_10_EXP__=4932
define: __FLT_MIN__=1.17549435082228750796873653722224568e-38F
define: __GCC_IEC_559_COMPLEX=2
define: __UINT_LEAST8_TYPE__=unsigned char
define: __SIZEOF_FLOAT80__=16
define: __INTMAX_C(c)=c ## L
define: __CHAR_BIT__=8
define: __UINT8_MAX__=0xff
define: __WINT_MAX__=0xffffffffU
define: __FLT32_MIN_EXP__=(-125)
define: __ORDER_LITTLE_ENDIAN__=1234
define: __SIZE_MAX__=0xffffffffffffffffUL
define: __WCHAR_MAX__=0x7fffffff
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1
define: __DBL_DENORM_MIN__=((double)4.94065645841246544176568792868221372e-324L)
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1
define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
define: __GCC_IEC_559=2
define: __FLT32X_DECIMAL_DIG__=17
define: __FLT_EVAL_METHOD__=0
define: __unix__=1
define: __FLT64_DECIMAL_DIG__=17
define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
define: __x86_64=1
define: __UINT_FAST64_MAX__=0xffffffffffffffffUL
define: __SIG_ATOMIC_TYPE__=int
define: __DBL_MIN_10_EXP__=(-307)
define: __FINITE_MATH_ONLY__=0
define: __GNUC_PATCHLEVEL__=0
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: __SHRT_MAX__=0x7fff
define: __LDBL_MAX__=1.18973149535723176502126385303097021e+4932L
define: __FLT64X_MAX_10_EXP__=4932
define: __UINT_LEAST8_MAX__=0xff
define: __GCC_ATOMIC_BOOL_LOCK_FREE=2
define: __FLT128_DENORM_MIN__=6.47517511943802511092443895822764655e-4966F128
define: __UINTMAX_TYPE__=long unsigned int
define: __linux=1
define: __DEC32_EPSILON__=1E-6DF
define: __FLT_EVAL_METHOD_TS_18661_3__=0
define: __unix=1
define: __UINT32_MAX__=0xffffffffU
define: __LDBL_MAX_EXP__=16384
define: __FLT128_MIN_EXP__=(-16381)
define: __WINT_MIN__=0U
define: __linux__=1
define: __FLT128_MIN_10_EXP__=(-4931)
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: __DBL_DIG__=15
define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
define: __FLT64X_MANT_DIG__=64
define: __SIZEOF_INT__=4
define: __SIZEOF_POINTER__=8
define: __USER_LABEL_PREFIX__=
define: __FLT64X_EPSILON__=1.08420217248550443400745280086994171e-19F64x
define: __STDC_HOSTED__=1
define: __LDBL_HAS_INFINITY__=1
define: __FLT32_DIG__=6
define: __FLT_EPSILON__=1.19209289550781250000000000000000000e-7F
define: __SHRT_WIDTH__=16
define: __LDBL_MIN__=3.36210314311209350626267781732175260e-4932L
define: __STDC_UTF_16__=1
define: __DEC32_MAX__=9.999999E96DF
define: __FLT64X_DENORM_MIN__=3.64519953188247460252840593361941982e-4951F64x
define: __FLT32X_HAS_INFINITY__=1
define: __INT32_MAX__=0x7fffffff
define: __INT_WIDTH__=32
define: __SIZEOF_LONG__=8
define: __STDC_IEC_559__=1
define: __STDC_ISO_10646__=201706L
define: __UINT16_C(c)=c
define: __PTRDIFF_WIDTH__=64
define: __DECIMAL_DIG__=21
define: __FLT64_EPSILON__=2.22044604925031308084726333618164062e-16F64
define: __gnu_linux__=1
define: __INTMAX_WIDTH__=64
define: __FLT64X_MIN_10_EXP__=(-4931)
define: __LDBL_HAS_QUIET_NAN__=1
define: __FLT64_MANT_DIG__=53
define: __GNUC__=7
define: __pie__=2
define: __MMX__=1
define: __FLT_HAS_DENORM__=1
define: __SIZEOF_LONG_DOUBLE__=16
define: __BIGGEST_ALIGNMENT__=16
define: __FLT64_MAX_10_EXP__=308
define: __DBL_MAX__=((double)1.79769313486231570814527423731704357e+308L)
define: __INT_FAST32_MAX__=0x7fffffffffffffffL
define: __DBL_HAS_INFINITY__=1
define: __DEC32_MIN_EXP__=(-94)
define: __INTPTR_WIDTH__=64
define: __FLT32X_HAS_DENORM__=1
define: __INT_FAST16_TYPE__=long int
define: __LDBL_HAS_DENORM__=1
define: __FLT128_HAS_INFINITY__=1
define: __DEC128_MAX__=9.999999999999999999999999999999999E6144DL
define: __INT_LEAST32_MAX__=0x7fffffff
define: __DEC32_MIN__=1E-95DF
define: __DBL_MAX_EXP__=1024
define: __WCHAR_WIDTH__=32
define: __FLT32_MAX__=3.40282346638528859811704183484516925e+38F32
define: __DEC128_EPSILON__=1E-33DL
define: __SSE2_MATH__=1
define: __ATOMIC_HLE_RELEASE=131072
define: __PTRDIFF_MAX__=0x7fffffffffffffffL
define: __amd64=1
define: __STDC_NO_THREADS__=1
define: __ATOMIC_HLE_ACQUIRE=65536
define: __FLT32_HAS_QUIET_NAN__=1
define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
define: __SIZEOF_SIZE_T__=8
define: __FLT64X_MIN_EXP__=(-16381)
define: __SIZEOF_WINT_T__=4
define: __LONG_LONG_WIDTH__=64
define: __FLT32_MAX_EXP__=128
define: __GCC_HAVE_DWARF2_CFI_ASM=1
define: __GXX_ABI_VERSION=1011
define: __FLT_MIN_EXP__=(-125)
define: __FLT64X_HAS_QUIET_NAN__=1
define: __INT_FAST64_TYPE__=long int
define: __FLT64_DENORM_MIN__=4.94065645841246544176568792868221372e-324F64
define: __DBL_MIN__=((double)2.22507385850720138309023271733240406e-308L)
define: __PIE__=2
define: __LP64__=1
define: __FLT32X_EPSILON__=2.22044604925031308084726333618164062e-16F32x
define: __DECIMAL_BID_FORMAT__=1
define: __FLT64_MIN_EXP__=(-1021)
define: __FLT64_MIN_10_EXP__=(-307)
define: __FLT64X_DECIMAL_DIG__=21
define: __DEC128_MIN__=1E-6143DL
define: __REGISTER_PREFIX__=
define: __UINT16_MAX__=0xffff
define: __DBL_HAS_DENORM__=1
define: __FLT32_MIN__=1.17549435082228750796873653722224568e-38F32
define: __UINT8_TYPE__=unsigned char
define: __NO_INLINE__=1
define: __FLT_MANT_DIG__=24
define: __LDBL_DECIMAL_DIG__=21
define: __VERSION__="7.5.0"
define: __UINT64_C(c)=c ## UL
define: _STDC_PREDEF_H=1
define: __GCC_ATOMIC_INT_LOCK_FREE=2
define: __FLT128_MAX_EXP__=16384
define: __FLT32_MANT_DIG__=24
define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __STDC_IEC_559_COMPLEX__=1
define: __FLT128_HAS_DENORM__=1
define: __FLT128_DIG__=33
define: __SCHAR_WIDTH__=8
define: __INT32_C(c)=c
define: __DEC64_EPSILON__=1E-15DD
define: __ORDER_PDP_ENDIAN__=3412
define: __DEC128_MIN_EXP__=(-6142)
define: __FLT32_MAX_10_EXP__=38
define: __INT_FAST32_TYPE__=long int
define: __UINT_LEAST16_TYPE__=short unsigned int
define: __FLT64X_HAS_INFINITY__=1
define: unix=1
define: __INT16_MAX__=0x7fff
define: __SIZE_TYPE__=long unsigned int
define: __UINT64_MAX__=0xffffffffffffffffUL
define: __FLT64X_DIG__=18
define: __INT8_TYPE__=signed char
define: __ELF__=1
define: __GCC_ASM_FLAG_OUTPUTS__=1
define: __FLT_RADIX__=2
define: __INT_LEAST16_TYPE__=short int
define: __LDBL_EPSILON__=1.08420217248550443400745280086994171e-19L
define: __UINTMAX_C(c)=c ## UL
define: __SSE_MATH__=1
define: __k8=1
define: __SIG_ATOMIC_MAX__=0x7fffffff
define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
define: __SIZEOF_PTRDIFF_T__=8
define: __FLT32X_MANT_DIG__=53
define: __x86_64__=1
define: __FLT32X_MIN_EXP__=(-1021)
define: __DEC32_SUBNORMAL_MIN__=0.000001E-95DF
define: __INT_FAST16_MAX__=0x7fffffffffffffffL
define: __FLT64_DIG__=15
define: __UINT_FAST32_MAX__=0xffffffffffffffffUL
define: __UINT_LEAST64_TYPE__=long unsigned int
define: __FLT_HAS_QUIET_NAN__=1
define: __FLT_MAX_10_EXP__=38
define: __LONG_MAX__=0x7fffffffffffffffL
define: __FLT64X_HAS_DENORM__=1
define: __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL
define: __FLT_HAS_INFINITY__=1
define: __UINT_FAST16_TYPE__=long unsigned int
define: __DEC64_MAX__=9.999999999999999E384DD
define: __INT_FAST32_WIDTH__=64
define: __CHAR16_TYPE__=short unsigned int
define: __PRAGMA_REDEFINE_EXTNAME=1
define: __SIZE_WIDTH__=64
define: __SEG_FS=1
define: __INT_LEAST16_MAX__=0x7fff
define: __DEC64_MANT_DIG__=16
define: __INT64_MAX__=0x7fffffffffffffffL
define: __UINT_LEAST32_MAX__=0xffffffffU
define: __SEG_GS=1
define: __FLT32_DENORM_MIN__=1.40129846432481707092372958328991613e-45F32
define: __GCC_ATOMIC_LONG_LOCK_FREE=2
define: __SIG_ATOMIC_WIDTH__=32
define: __INT_LEAST64_TYPE__=long int
define: __INT16_TYPE__=short int
define: __INT_LEAST8_TYPE__=signed char
define: __STDC_VERSION__=201112L
define: __DEC32_MAX_EXP__=97
define: __INT_FAST8_MAX__=0x7f
define: __FLT128_MAX__=1.18973149535723176508575932662800702e+4932F128
define: __INTPTR_MAX__=0x7fffffffffffffffL
define: linux=1
define: __FLT64_HAS_QUIET_NAN__=1
define: __FLT32_MIN_10_EXP__=(-37)
define: __SSE2__=1
define: __FLT32X_DIG__=15
define: __LDBL_MANT_DIG__=64
define: __DBL_HAS_QUIET_NAN__=1
define: __FLT64_HAS_INFINITY__=1
define: __FLT64X_MAX__=1.18973149535723176502126385303097021e+4932F64x
define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
define: __code_model_small__=1
define: __k8__=1
define: __INTPTR_TYPE__=long int
define: __UINT16_TYPE__=short unsigned int
define: __WCHAR_TYPE__=int
define: __SIZEOF_FLOAT__=4
define: __pic__=2
define: __UINTPTR_MAX__=0xffffffffffffffffUL
define: __INT_FAST64_WIDTH__=64
define: __DEC64_MIN_EXP__=(-382)
define: __FLT32_DECIMAL_DIG__=9
define: __INT_FAST64_MAX__=0x7fffffffffffffffL
define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
define: __FLT_DIG__=6
define: __FLT32_HAS_INFINITY__=1
define: __FLT64X_MAX_EXP__=16384
define: __UINT_FAST64_TYPE__=long unsigned int
define: __INT_MAX__=0x7fffffff
define: __amd64__=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: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
define: __DEC64_MIN__=1E-383DD
define: __WINT_TYPE__=unsigned int
define: __UINT_LEAST32_TYPE__=unsigned int
define: __SIZEOF_SHORT__=2
define: __SSE__=1
define: __LDBL_MIN_EXP__=(-16381)
define: __FLT64_MAX__=1.79769313486231570814527423731704357e+308F64
define: __WINT_WIDTH__=32
define: __INT_LEAST8_MAX__=0x7f
define: __FLT32X_MAX_10_EXP__=308
define: __SIZEOF_INT128__=16
define: __LDBL_MAX_10_EXP__=4932
define: __ATOMIC_RELAXED=0
define: __DBL_EPSILON__=((double)2.22044604925031308084726333618164062e-16L)
define: __FLT128_MIN__=3.36210314311209350626267781732175260e-4932F128
define: _LP64=1
define: __UINT8_C(c)=c
define: __FLT64_MAX_EXP__=1024
define: __INT_LEAST32_TYPE__=int
define: __SIZEOF_WCHAR_T__=4
define: __UINT64_TYPE__=long unsigned int
define: __FLT128_HAS_QUIET_NAN__=1
define: __INT_FAST8_TYPE__=signed char
define: __FLT64X_MIN__=3.36210314311209350626267781732175260e-4932F64x
define: __GNUC_STDC_INLINE__=1
define: __FLT64_HAS_DENORM__=1
define: __FLT32_EPSILON__=1.19209289550781250000000000000000000e-7F32
define: __DBL_DECIMAL_DIG__=17
define: __STDC_UTF_32__=1
define: __INT_FAST8_WIDTH__=8
define: __FXSR__=1
define: __DEC_EVAL_METHOD__=2
define: __FLT32X_MAX__=1.79769313486231570814527423731704357e+308F32x
define: __UINT32_C(c)=c ## U
define: __INTMAX_MAX__=0x7fffffffffffffffL
define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __FLT_DENORM_MIN__=1.40129846432481707092372958328991613e-45F
define: __INT8_MAX__=0x7f
define: __LONG_WIDTH__=64
define: __PIC__=2
define: __UINT_FAST32_TYPE__=long unsigned int
define: __CHAR32_TYPE__=unsigned int
define: __FLT_MAX__=3.40282346638528859811704183484516925e+38F
define: __INT32_TYPE__=int
define: __SIZEOF_DOUBLE__=8
define: __FLT_MIN_10_EXP__=(-37)
define: __FLT64_MIN__=2.22507385850720138309023271733240406e-308F64
define: __INT_LEAST32_WIDTH__=32
define: __INTMAX_TYPE__=long int
define: __DEC128_MAX_EXP__=6145
define: __FLT32X_HAS_QUIET_NAN__=1
define: __ATOMIC_CONSUME=1
define: __GNUC_MINOR__=5
define: __INT_FAST16_WIDTH__=64
define: __UINTMAX_MAX__=0xffffffffffffffffUL
define: __DEC32_MANT_DIG__=7
define: __FLT32X_DENORM_MIN__=4.94065645841246544176568792868221372e-324F32x
define: __DBL_MAX_10_EXP__=308
define: __LDBL_DENORM_MIN__=3.64519953188247460252840593361941982e-4951L
define: __INT16_C(c)=c
define: __STDC__=1
define: __PTRDIFF_TYPE__=long int
define: __ATOMIC_SEQ_CST=5
define: __UINT32_TYPE__=unsigned int
define: __FLT32X_MIN_10_EXP__=(-307)
define: __UINTPTR_TYPE__=long unsigned int
define: __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD
define: __DEC128_MANT_DIG__=34
define: __LDBL_MIN_10_EXP__=(-4931)
define: __FLT128_EPSILON__=1.92592994438723585305597794258492732e-34F128
define: __SIZEOF_LONG_LONG__=8
define: __FLT128_DECIMAL_DIG__=36
define: __GCC_ATOMIC_LLONG_LOCK_FREE=2
define: __FLT32X_MIN__=2.22507385850720138309023271733240406e-308F32x
define: __LDBL_DIG__=18
define: __FLT_DECIMAL_DIG__=9
define: __UINT_FAST16_MAX__=0xffffffffffffffffUL
define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
define: __INT_LEAST64_WIDTH__=64
define: __UINT_FAST8_TYPE__=unsigned char
define: __ATOMIC_ACQ_REL=4
define: __ATOMIC_RELEASE=3
define: IO_HEADER="\"stdio.h\""
other: --gcc
other: --gnu_version=70500
stdver: c11
intelliSenseMode: linux-gcc-x64
Checking for syntax errors: /home/derek/vscode-test/main.c
Queueing IntelliSense update for files in translation unit of: /home/derek/vscode-test/main.c
cpptools/getCodeActions: /home/derek/vscode-test/main.c (id: 6)
cpptools/finishUpdateSquiggles
Error squiggle count: 2
Tag Parser will be used for IntelliSense operations in: file:///home/derek/vscode-test/main.c
terminating child process: 30417
Update IntelliSense time (sec): 0.393
cpptools/getFoldingRanges: /home/derek/vscode-test/main.c (id: 7)
cpptools/getCodeActions: /home/derek/vscode-test/main.c (id: 8)
textDocument/hover: /home/derek/vscode-test/main.c (id: 9)
using Tag Parser for quick info
textDocument/hover: /home/derek/vscode-test/main.c (id: 10)
using Tag Parser for quick info
cpptools/getCodeActions: /home/derek/vscode-test/main.c (id: 11)
Screenshots
N/A
Additional context
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with the provided main.c and Makefile, run makefile.configure, and inspect the resulting diagnostics and language-server logs. Start with the Makefile Tools configuration-provider path that supplies the IO_HEADER definition to the C/C++ language service. Done means the computed include is resolved without an error squiggle and full IntelliSense is used, while the sample still builds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, cpp, typescript
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100