Repository navigation
VEX c_cpp_properties.json recursively exposes Clang CUDA wrapper headers in 1.33+ #14806
Description
Activity
Colengms commented
on Oct 7, 2026 ContributorMore actionsThanks for the report. I reproduced this using VEX Robotics 0.8.2026020401 and the mikLib project. C/C++ 1.32.2 reports no diagnostics, while 1.33.0 and later—including 1.34.4 and 1.35.3—report the false errors.
The issue is caused by the
c_cpp_properties.jsongenerated by the VEX extension. It supplies paths such as:"${vex_sdkPath}/clang/8.0.0/include/**", "${vex_gcc}/**"
In an
includePath, the/**suffix means that every subdirectory is an eligible include directory, in the configured root order. Starting with C/C++ 1.33, recursive include paths are resolved directly when each#includeis processed instead of first being expanded and reduced to a set of concrete directories. This was an intentional change associated with #14426. It more directly honors the declared meaning of/**; the previous reduction behavior happened to mask this configuration problem.In this case, recursively searching the Clang resource directory also exposes nested directories such as
clang/8.0.0/include/cuda_wrappers. Those are not compiler include roots for a normal VEX build and can interfere with resolution of standard headers such as<algorithm>and<new>, resulting in the cascading IntelliSense errors.The actual VEX makefile uses ordinary, non-recursive
-Ipaths. The generated IntelliSense configuration should do the same, for example:"${vex_sdkPath}/clang/8.0.0/include", "${vex_gcc}"
Ideally, the complete IntelliSense include list should match the paths and ordering used by the VEX build. As a temporary workaround, removing
/**from the Clang include path eliminates the errors in both C/C++ 1.34.4 and 1.35.3. However, the VEX extension may regenerate that file.Because the VEX extension owns and generates this configuration, please report the issue to the VEX extension maintainers at:
https://github.com/VEX-Robotics/vex-vsc-extension/issues
Please link back to this issue so they have the investigation details. Given the documented meaning of
/**, the current cpptools behavior is expected, so this needs to be corrected in the generated VEX configuration.Cowritten with Copilot (GPT-5.6 Sol Fast)
- changed the title
[-]Intellisense errors for projects after updating C/C++ extension to a version newer than 1.32.2[/-][+]VEX `c_cpp_properties.json` recursively exposes Clang CUDA wrapper headers in C/C++ 1.33+[/+]on Oct 7, 2026 - changed the title
[-]VEX `c_cpp_properties.json` recursively exposes Clang CUDA wrapper headers in C/C++ 1.33+[/-][+]VEX `c_cpp_properties.json` recursively exposes Clang CUDA wrapper headers in 1.33+[/+]on Oct 7, 2026
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsNo status
Issue: When writing C/C++ projects for VEX Robotics using the VEX VS Code Extension, after updating to a C/C++ extension version newer than 1.32.2, the project shows intellisense errors that were not previously present. The project can still successfully build, but will still show errors.
OS Version: Windows 11 Education 25H2 26200.9106
VS Code Version: 1.139.1
C/C++ Extension Version: 1.32.2 and newer
Development Environment: VS Build Tools 2022
VEX Robotics Version: 0.8.2026020401
Steps to Reproduce:
https://ethanmik.github.io/mikLib/