microsoft / microsoft/vscode-makefile-tools

"cannot open source file "\"" error when using makefile tools with a computed include that is escaped with backslashes

Open
#324 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature: Parsers
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

  1. Create a trivial makefile based C project as shown in code sample below
  2. issue makefile.configure command through command pallete to activate the makefile extension
  3. Observe error squiggles on the #include line 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.c with contents:
#include IO_HEADER

int main(void) {
    printf("Hello World!\n");
}
  • Makefile with 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 Diagnostics from 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
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.