Single `#include` inside of array causes VSCode to report the "expected an expression" error
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- c, typescript
- Lĩnh vực
- devtools
Hướng nghiên cứu
Bắt đầu với reproducer main.c và file.txt bằng cấu hình VS Code, tiện ích mở rộng C/C++ và cl.exe đã được báo cáo, sau đó so sánh hành vi của trình biên dịch với chẩn đoán của IntelliSense. Hoàn tất khi mảng được mở rộng bằng include được chấp nhận mà không có lỗi "expected an expression" và vẫn giữ nguyên ba phần tử dự kiến.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Environment
- OS and Version: Windows 11 24H2 (Build 26100.4349)
- VS Code Version: 1.101.2
- C/C++ Extension Version: 1.26.3
Bug Summary and Steps to Reproduce
Bug Summary:
I'm currently working on a project that combines an X macro with an #include statement to populate an array from a generated file, like this:
// main.c
#include <stdio.h>
#define X(n) n
int array[] = {
#include "file.txt"
// 0
}; // "expected an expression"
#undef X
int main() {
for (int i = 0; i < 3; i++)
{
printf("%i\n", array[i]); // Output is "123", as expected.
}
return 0;
}
// file.txt
X(1),
X(2),
X(3),
It feels hackish, but it compiles and runs. However, VSCode doesn't seem to like the fact that array has nothing but #include "file.txt" inside. Uncommenting 0 makes the error go away, although, this obviously makes array to have 4 items instead of intended 3.
Steps to reproduce:
- Create
main.candfile.txtand insert code above; - Open
main.cin VSCode; - Notice error on line 7.
Expected behavior:
VSCode should understand that #include "file.txt" with expanded macros provide an expected expression.
Configuration and Logs
-------- Diagnostics - 6/30/2025, 1:54:07 AM
Version: 1.26.3
Current Configuration:
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.26100.0",
"compilerPath": "cl.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-msvc-x64",
"compilerPathInCppPropertiesJson": "cl.exe",
"intelliSenseModeIsExplicit": false,
"cStandardIsExplicit": false,
"cppStandardIsExplicit": false,
"mergeConfigurations": false,
"recursiveIncludes": {},
"recursiveIncludesReduceIsExplicit": false,
"recursiveIncludesPriorityIsExplicit": false,
"recursiveIncludesOrderIsExplicit": false,
"compilerPathIsExplicit": false,
"browse": {
"limitSymbolsToIncludedHeaders": true
}
}
Modified Settings:
{
"C_Cpp.autocompleteAddParentheses": true,
"C_Cpp.formatting": "clangFormat",
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, AlignAfterOpenBracket: BlockIndent, BinPackArguments: false, PenaltyBreakAssignment: 64 }",
"C_Cpp.codeAnalysis.clangTidy.enabled": true
}
Additional Tracked Settings:
{
"editorTabSize": 4,
"editorInsertSpaces": true,
"editorAutoClosingBrackets": "languageDefined",
"filesEncoding": "utf8",
"filesAssociations": {},
"filesExclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/.DS_Store": true,
"**/Thumbs.db": true
},
"filesAutoSaveAfterDelay": false,
"editorInlayHintsEnabled": true,
"editorParameterHintsEnabled": true,
"searchExclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/*.code-search": true
},
"workbenchSettingsEditor": "ui"
}
cpptools version (native): 1.26.3.0
Current database path: C:\USERS\OPERATOR\APPDATA\LOCAL\TEMP\{4514E1A3-0F0D-4E39-A2F4-4D7081E65254}\.BROWSE.VC.DB
Translation Unit Mappings:
[ C:\Users\operator\Desktop\repos\test\main.c - source TU]:
C:\Users\operator\Desktop\repos\test\file.txt
Translation Unit Configurations:
[ C:\Users\operator\Desktop\repos\test\main.c ]
Process ID: 11608
Memory Usage: 63 MB
Compiler Path: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\bin\Hostx64\x64\cl.exe
Include paths:
include: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\include
include: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include
include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt
include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\um
include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared
include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\winrt
include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\cppwinrt
include: C:\Program Files (x86)\Windows Kits\NETFXSDK\4.7.2\Include\um
system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\um
system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt
system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared
system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\winrt
system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\cppwinrt
Defines:
_DEBUG
UNICODE
_UNICODE
Standard Version: ms_c17
IntelliSense Mode: windows-msvc-x64
Other Flags:
--using_directory
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\lib\x86
--using_directory
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\lib\x86\store\references
--using_directory
C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.26100.0
--using_directory
C:\Program Files (x86)\Windows Kits\10\References\10.0.26100.0
--using_directory
C:\Windows\Microsoft.NET\Framework\v4.0.30319
Total Memory Usage: 63 MB
------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 5082
Number of files parsed: 238
Other Extensions
No response
Additional context
No response
- Ngôn ngữ chính
- TypeScript
- Star
- 6.2k
- Fork
- 1.7k
- Merge trung bình
- 14 giờ 46 phút
- Pull request đã merge (30 ngày)
- 61
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của microsoft/vscode-cpptools
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
microsoft/vscode-cpptools#14787 ·
-
[Bug] cpptools fails to start on Ubuntu ARM64 due to missing execute permissions on shared libraries Đang mởbug fixed Language Service regression
microsoft/vscode-cpptools#14779 · 1 người được giao ·
-
Language Service more info needed
microsoft/vscode-cpptools#14778 · 1 bình luận · 1 người được giao ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 64/100
microsoft/vscode-cpptools#14769 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
microsoft/vscode-cpptools#14768 · 1 bình luận ·
Tất cả issue của microsoft/vscode-cpptools
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
0xMiden/bridge-portal#132 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
-
area:tools bug good first issue help wanted priority:P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 90/100
TaewoooPark/Motifcode#14 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
newrelic-experimental/preflight#793 · 1 bình luận ·