Environment
- OS and Version: Debian 5.15.153.1-microsoft-standard-WSL2, WSL 2.2.4.0, Windows 10.0.19045.7725
- VS Code Version: 1.116.0
- C/C++ Extension Version: 1.34.4
- If using SSH remote, specify OS of remote machine:
Bug Summary and Steps to Reproduce
Bug Summary:
When using Clang to build a freestanding --target=wasm32 library inside WSL, IntelliSense fails to detect available __builtin_* WebAssembly intrinsics, and thus when an WebAssembly macro intrinsic (like wasm_i32x4_shuffle) is used, the expression is displayed with an error. In the case of that particular intrinsic, the error is invalid type conversion C/C++(171), because 1. IntelliSense is unaware of __builtin_wasm_shuffle_i8x16 and instead uses an implicit declaration of int __builtin_wasm_shuffle_i8x16() and 2. wasm_i32x4_shuffle is defined in wasm_simd128.h as follows:
#define wasm_i32x4_shuffle(__a, __b, __c0, __c1, __c2, __c3) \
((v128_t)__builtin_wasm_shuffle_i8x16( \
(__i8x16)(__a), (__i8x16)(__b), (__c0)*4, (__c0)*4 + 1, (__c0)*4 + 2, \
(__c0)*4 + 3, (__c1)*4, (__c1)*4 + 1, (__c1)*4 + 2, (__c1)*4 + 3, \
(__c2)*4, (__c2)*4 + 1, (__c2)*4 + 2, (__c2)*4 + 3, (__c3)*4, \
(__c3)*4 + 1, (__c3)*4 + 2, (__c3)*4 + 3))
I inferred this as the likely cause because if you Alt+click the function and explore the 100+ displayed errors in that file, you can easily find other cases where IntelliSense is complaining about the same kind of cast.
Steps to reproduce:
-
Start WSL and make sure you have Clang 19.1.7 installed. (Later versions of Clang use a different method internally for the shuffle intrinsic.) Also, ensure there are no open VSCode windows and that no VSCode server is running in the background in the WSL VM. (You can check this pretty quickly with top/htop.)
-
Create a directory with the following file structure:
.vscode/c_cpp_properties.json: see below
.vscode/settings.json:
{
"C_Cpp.loggingLevel": "Debug"
}
test.c:
#include <wasm_simd128.h>
int test(int a, int b) {
v128_t va = wasm_i32x4_splat(a);
v128_t vb = wasm_i32x4_splat(b);
v128_t vc = wasm_i32x4_shuffle(va, vb, 0, 1, 4, 5);
return wasm_i32x4_extract_lane(vc, 0);
}
-
Compile the module and observe no errors occurred during compilation:
clang -std=c17 --target=wasm32 --no-standard-libraries -Wl,--export-all -Wl,--no-entry -Wall -Werror -msimd128 -o out.wasm test.c
-
Open VSCode with only ms-vscode.cpptools running:
code $(code --list-extensions | grep -v ms-vscode.cpptools | xargs -I % echo '--disable-extension %') .
-
Open test.c.
You will observe that line 6 displays an error squiggle, and if you hover over it, it displays invalid type conversion C/C++(171).
-
Alt+click the wasm_i32x4_shuffle, the one marked with an error. This will navigate to the included wasm_simd128.h, where that macro is.
-
Scroll down a little bit, and you'll see the following function:
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i8x16_swizzle(v128_t __a,
v128_t __b) {
return (v128_t)__builtin_wasm_swizzle_i8x16((__i8x16)__a, (__i8x16)__b);
}
You will observe that an error squiggle is also displayed over the opening ( of (v128_t), and if you hover over it, it displays the same error invalid type conversion C/C++(171).
-
Hover over __builtin_wasm_swizzle_i8x16.
You will observe the prototype detected is int __builtin_wasm_swizzle_i8x16().
-
Scroll down a little bit further, and you'll see the following function:
static __inline__ v128_t __DEFAULT_FN_ATTRS
wasm_i16x8_extend_low_i8x16(v128_t __a) {
return (v128_t) __builtin_convertvector(
(__i8x8){((__i8x16)__a)[0], ((__i8x16)__a)[1], ((__i8x16)__a)[2],
((__i8x16)__a)[3], ((__i8x16)__a)[4], ((__i8x16)__a)[5],
((__i8x16)__a)[6], ((__i8x16)__a)[7]},
__i16x8);
}
-
Hover over __builtin_convertvector.
You will observe it instead just shows __builtin_convertvector, not as a function, but as a simple identifier.
Expected behavior:
No errors to appear, and __builtin_wasm_swizzle_i8x16 to show up the same way as __builtin_convertvector, as a builtin rather than as an implicitly defined function.
Configuration and Logs
I've redacted user-related paths, but that's it. `$HOME` is obvious, and `$PROJECT` is the project root. The logs were
`.vscode/c_cpp_properties.json`:
{
"configurations": [
{
"name": "WebAssembly",
"includePath": [
"${workspaceFolder}/"
],
"compilerArgs": [
"--target=wasm32",
"--no-standard-libraries",
"-Wl,--export-all",
"-Wl,--no-entry",
"-Wall",
"-Werror",
"-msimd128"
],
"defines": [],
"compilerPath": "/usr/bin/clang",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "linux-clang-x64"
}
],
"version": 4
}
Diagnostics logs, grabbed immediately before following the reproduction steps:
> Most of this junk is either from extensions that were manually disabled or unrelated customizations I made for JS development.
-------- Diagnostics - 9/13/2026, 9:34:27 AM
Version: 1.34.4
Current Configuration:
{
"name": "WebAssembly",
"includePath": [
"$PROJECT/"
],
"compilerArgs": [
"--target=wasm32",
"--no-standard-libraries",
"-Wl,--export-all",
"-Wl,--no-entry",
"-Wall",
"-Werror",
"-msimd128"
],
"defines": [],
"compilerPath": "/usr/bin/clang",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "linux-clang-x64",
"compilerPathIsExplicit": true,
"cStandardIsExplicit": true,
"cppStandardIsExplicit": true,
"intelliSenseModeIsExplicit": true,
"recursiveIncludesPriorityIsExplicit": false,
"recursiveIncludesOrderIsExplicit": false,
"compilerPathInCppPropertiesJson": "/usr/bin/clang",
"mergeConfigurations": false,
"recursiveIncludes": {},
"browse": {
"limitSymbolsToIncludedHeaders": true
}
}
Modified Settings:
{
"C_Cpp.loggingLevel": "Debug"
}
Additional Tracked Settings:
{
"editorTabSize": 4,
"editorInsertSpaces": true,
"editorAutoClosingBrackets": "languageDefined",
"filesEncoding": "utf8",
"filesAssociations": {
"*.h": "c",
"*.svg": "svg",
"*.{asm,inc,s,nasm,yasm,-----------------------------------------}": "asm-x86-nasm"
},
"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.34.3.0
Current database path: $HOME/.cache/vscode-cpptools/d004e617ed0d21d84b6351fcd0c58a45/.browse.VC.db
No active translation units.
Language server logs, gathered while following the reproduction steps:
loggingLevel: 6
LSP: (received) cpptools/preinitialize (id: 1)
LSP: (invoked) cpptools/preinitialize (id: 1)
LSP: Sending response (id: 1)
LSP: (received) cpptools/initialize (id: 2)
LSP: (invoked) cpptools/initialize (id: 2)
cpptools version (TypeScript): 1.34.4
cpptools version (native): 1.34.3.0
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
LSP: Sending response (id: 2)
LSP: (received) cpptools/queryCompilerDefaults (id: 3)
LSP: (received - deferred) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/queryCompilerDefaults (id: 3)
LSP: (received - deferred) cpptools/didChangeVisibleTextEditors
Querying compiler for default C++ language standard using command line: /usr/bin/clang -x c++ -E -dM /dev/null
Detected language standard version: c++17
Querying compiler for default C language standard using command line: /usr/bin/clang -x c -E -dM /dev/null
Detected language standard version: c17
Querying compiler's default target using command line: "/usr/bin/clang" -dumpmachine
Compiler returned default target value: x86_64-pc-linux-gnu
Compiler info database not connected - skipping load.
Compiler query command line: /usr/bin/clang -std=c17 -m64 -Wp,-v -fno-blocks -E -dM -x c /dev/null
Attempting to get defaults from C compiler in "compilerPath" property: '/usr/bin/clang'
Compiler info database not connected - skipping load.
Compiler query command line: /usr/bin/clang -std=c++17 -m64 -Wp,-v -fno-blocks -E -dM -x c++ /dev/null
Attempting to get defaults from C++ compiler in "compilerPath" property: '/usr/bin/clang'
LSP: Sending response (id: 3)
Processed c_cpp_properties.json in 0.004947261s
LSP: (received) cpptools/queryCompilerDefaults (id: 4)
LSP: (invoked) cpptools/queryCompilerDefaults (id: 4)
LSP: (received) cpptools/didChangeCppProperties
LSP: Sending response (id: 4)
LSP: (invoked) cpptools/didChangeCppProperties
Compiler info database not connected - skipping load.
Compiler info database not connected - skipping load.
Compiler query command line: /usr/bin/clang --target=wasm32 --no-standard-libraries -msimd128 -std=c++17 -Wp,-v -fno-blocks -E -dM -x c++ /dev/null
Compiler query command line: /usr/bin/clang --target=wasm32 --no-standard-libraries -msimd128 -std=c17 -Wp,-v -fno-blocks -E -dM -x c /dev/null
Attempting to get defaults from C compiler in "compilerPath" property: '/usr/bin/clang'
Attempting to get defaults from C++ compiler in "compilerPath" property: '/usr/bin/clang'
Folder: $PROJECT will be indexed
Folder: /usr/lib/llvm-19/lib/clang/19/include will be indexed
Opening code store: $HOME/.cache/vscode-cpptools/d004e617ed0d21d84b6351fcd0c58a45/.browse.VC.db
Code browsing service initialized
LSP: (queued) cpptools/didChangeVisibleTextEditors
LSP: (queued) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
Unified Store: Files Initialized (completed)
Done parsing remaining files.
Unified Store: Configuration Initialized (completed)
LSP: (received) cpptools/getDiagnostics (id: 5)
LSP: (invoked) cpptools/getDiagnostics (id: 5)
LSP: Sending response (id: 5)
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
Done parsing remaining files.
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) textDocument/didOpen: file://$PROJECT/test.c
LSP: (invoked) textDocument/didOpen: file://$PROJECT/test.c
textDocument/didOpen: file://$PROJECT/test.c
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/getCodeActions: file://$PROJECT/test.c (id: 6)
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeActiveEditor: file://$PROJECT/test.c
LSP: (received) cpptools/getDocumentSymbols: file://$PROJECT/test.c (id: 7)
LSP: (received) cpptools/didChangeTextEditorSelection
LSP: (invoked) cpptools/getCodeActions: file://$PROJECT/test.c (id: 6)
LSP: (invoked) cpptools/didChangeVisibleTextEditors
Intellisense update pending for: file://$PROJECT/test.c
LSP: (invoked) cpptools/didChangeActiveEditor: file://$PROJECT/test.c
LSP: (invoked) cpptools/getDocumentSymbols: file://$PROJECT/test.c (id: 7)
LSP: (invoked) cpptools/didChangeTextEditorSelection
LSP: Sending response (id: 6)
LSP: Sending response (id: 7)
LSP: (received) cpptools/getCodeActions: file://$PROJECT/test.c (id: 8)
LSP: (invoked) cpptools/getCodeActions: file://$PROJECT/test.c (id: 8)
LSP: Sending response (id: 8)
LSP: (received) cpptools/getCodeActions: file://$PROJECT/test.c (id: 9)
LSP: (invoked) cpptools/getCodeActions: file://$PROJECT/test.c (id: 9)
LSP: Sending response (id: 9)
IntelliSense update scheduled and TU acquisition started for: file://$PROJECT/test.c
LSP: (received) cpptools/getFoldingRanges: file://$PROJECT/test.c (id: 10)
LSP: (invoked) cpptools/getFoldingRanges: file://$PROJECT/test.c (id: 10)
LSP: Sending response (id: 10)
LSP: (received) cpptools/getFoldingRanges: file://$PROJECT/test.c (id: 11)
LSP: (invoked) cpptools/getFoldingRanges: file://$PROJECT/test.c (id: 11)
LSP: Sending response (id: 11)
sending compilation args for $PROJECT/test.c
canonical: /ClangMode /TC /I"$PROJECT" /Clangisystem"/usr/lib/llvm-19/lib/clang/19/include" /D_ILP32=1 /D__ATOMIC_ACQUIRE=2 /D__ATOMIC_ACQ_REL=4 /D__ATOMIC_CONSUME=1 /D__ATOMIC_RELAXED=0 /D__ATOMIC_RELEASE=3 /D__ATOMIC_SEQ_CST=5 /D__BIGGEST_ALIGNMENT__=16 /D__BITINT_MAXWIDTH__=128 /D__BOOL_WIDTH__=8 /D__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__ /D"__CHAR16_TYPE__=unsigned short" /D"__CHAR32_TYPE__=unsigned int" /D__CHAR_BIT__=8 /D__CLANG_ATOMIC_BOOL_LOCK_FREE=2 /D__CLANG_ATOMIC_CHAR16_T_LOCK_FREE=2 /D__CLANG_ATOMIC_CHAR32_T_LOCK_FREE=2 /D__CLANG_ATOMIC_CHAR_LOCK_FREE=2 /D__CLANG_ATOMIC_INT_LOCK_FREE=2 /D__CLANG_ATOMIC_LLONG_LOCK_FREE=2 /D__CLANG_ATOMIC_LONG_LOCK_FREE=2 /D__CLANG_ATOMIC_POINTER_LOCK_FREE=2 /D__CLANG_ATOMIC_SHORT_LOCK_FREE=2 /D__CLANG_ATOMIC_WCHAR_T_LOCK_FREE=2 /D__CONSTANT_CFSTRINGS__=1 /D__DBL_DECIMAL_DIG__=17 /D__DBL_DENORM_MIN__=4.9406564584124654e-324 /D__DBL_DIG__=15 /D__DBL_EPSILON__=2.2204460492503131e-16 /D__DBL_HAS_DENORM__=1 /D__DBL_HAS_INFINITY__=1 /D__DBL_HAS_QUIET_NAN__=1 /D__DBL_MANT_DIG__=53 /D__DBL_MAX_10_EXP__=308 /D__DBL_MAX_EXP__=1024 /D__DBL_MAX__=1.7976931348623157e+308 /D__DBL_MIN_10_EXP__=(-307) /D__DBL_MIN_EXP__=(-1021) /D__DBL_MIN__=2.2250738585072014e-308 /D__DBL_NORM_MAX__=1.7976931348623157e+308 /D__DECIMAL_DIG__=__LDBL_DECIMAL_DIG__ /D__FINITE_MATH_ONLY__=0 /D__FLOAT128__=1 /D__FLT_DECIMAL_DIG__=9 /D__FLT_DENORM_MIN__=1.40129846e-45F /D__FLT_DIG__=6 /D__FLT_EPSILON__=1.19209290e-7F /D__FLT_HAS_DENORM__=1 /D__FLT_HAS_INFINITY__=1 /D__FLT_HAS_QUIET_NAN__=1 /D__FLT_MANT_DIG__=24 /D__FLT_MAX_10_EXP__=38 /D__FLT_MAX_EXP__=128 /D__FLT_MAX__=3.40282347e+38F /D__FLT_MIN_10_EXP__=(-37) /D__FLT_MIN_EXP__=(-125) /D__FLT_MIN__=1.17549435e-38F /D__FLT_NORM_MAX__=3.40282347e+38F /D__FLT_RADIX__=2 /D__FPCLASS_NEGINF=0x0004 /D__FPCLASS_NEGNORMAL=0x0008 /D__FPCLASS_NEGSUBNORMAL=0x0010 /D__FPCLASS_NEGZERO=0x0020 /D__FPCLASS_POSINF=0x0200 /D__FPCLASS_POSNORMAL=0x0100 /D__FPCLASS_POSSUBNORMAL=0x0080 /D__FPCLASS_POSZERO=0x0040 /D__FPCLASS_QNAN=0x0002 /D__FPCLASS_SNAN=0x0001 /D__GCC_ATOMIC_BOOL_LOCK_FREE=2 /D__GCC_ATOMIC_CHAR16_T_LOCK_FREE=2 /D__GCC_ATOMIC_CHAR32_T_LOCK_FREE=2 /D__GCC_ATOMIC_CHAR_LOCK_FREE=2 /D__GCC_ATOMIC_INT_LOCK_FREE=2 /D__GCC_ATOMIC_LLONG_LOCK_FREE=2 /D__GCC_ATOMIC_LONG_LOCK_FREE=2 /D__GCC_ATOMIC_POINTER_LOCK_FREE=2 /D__GCC_ATOMIC_SHORT_LOCK_FREE=2 /D__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1 /D__GCC_ATOMIC_WCHAR_T_LOCK_FREE=2 /D__GCC_CONSTRUCTIVE_SIZE=64 /D__GCC_DESTRUCTIVE_SIZE=64 /D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1 /D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1 /D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1 /D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 /D__GNUC_MINOR__=2 /D__GNUC_PATCHLEVEL__=1 /D__GNUC_STDC_INLINE__=1 /D__GNUC__=4 /D__GXX_ABI_VERSION=1002 /D__ILP32__=1 /D__INT16_C_SUFFIX__= /D"__INT16_FMTd__=\"hd\"" /D"__INT16_FMTi__=\"hi\"" /D__INT16_MAX__=32767 /D__INT16_TYPE__=short /D__INT32_C_SUFFIX__= /D"__INT32_FMTd__=\"d\"" /D"__INT32_FMTi__=\"i\"" /D__INT32_MAX__=2147483647 /D__INT32_TYPE__=int /D__INT64_C_SUFFIX__=LL /D"__INT64_FMTd__=\"lld\"" /D"__INT64_FMTi__=\"lli\"" /D__INT64_MAX__=9223372036854775807LL /D"__INT64_TYPE__=long long int" /D__INT8_C_SUFFIX__= /D"__INT8_FMTd__=\"hhd\"" /D"__INT8_FMTi__=\"hhi\"" /D__INT8_MAX__=127 /D"__INT8_TYPE__=signed char" /D__INTMAX_C_SUFFIX__=LL /D"__INTMAX_FMTd__=\"lld\"" /D"__INTMAX_FMTi__=\"lli\"" /D__INTMAX_MAX__=9223372036854775807LL /D"__INTMAX_TYPE__=long long int" /D__INTMAX_WIDTH__=64 /D"__INTPTR_FMTd__=\"ld\"" /D"__INTPTR_FMTi__=\"li\"" /D__INTPTR_MAX__=2147483647L /D"__INTPTR_TYPE__=long int" /D__INTPTR_WIDTH__=32 /D"__INT_FAST16_FMTd__=\"hd\"" /D"__INT_FAST16_FMTi__=\"hi\"" /D__INT_FAST16_MAX__=32767 /D__INT_FAST16_TYPE__=short /D__INT_FAST16_WIDTH__=16 /D"__INT_FAST32_FMTd__=\"d\"" /D"__INT_FAST32_FMTi__=\"i\"" /D__INT_FAST32_MAX__=2147483647 /D__INT_FAST32_TYPE__=int /D__INT_FAST32_WIDTH__=32 /D"__INT_FAST64_FMTd__=\"lld\"" /D"__INT_FAST64_FMTi__=\"lli\"" /D__INT_FAST64_MAX__=9223372036854775807LL /D"__INT_FAST64_TYPE__=long long int" /D__INT_FAST64_WIDTH__=64 /D"__INT_FAST8_FMTd__=\"hhd\"" /D"__INT_FAST8_FMTi__=\"hhi\…
edge args (364):
--c
-I$PROJECT
--sys_include=/usr/lib/llvm-19/lib/clang/19/include
-D_ILP32=1
-D__ATOMIC_ACQUIRE=2
-D__ATOMIC_ACQ_REL=4
-D__ATOMIC_CONSUME=1
-D__ATOMIC_RELAXED=0
-D__ATOMIC_RELEASE=3
-D__ATOMIC_SEQ_CST=5
-D__BIGGEST_ALIGNMENT__=16
-D__BITINT_MAXWIDTH__=128
-D__BOOL_WIDTH__=8
-D__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
-D__CHAR16_TYPE__=unsigned short
-D__CHAR32_TYPE__=unsigned int
-D__CHAR_BIT__=8
-D__CLANG_ATOMIC_BOOL_LOCK_FREE=2
-D__CLANG_ATOMIC_CHAR16_T_LOCK_FREE=2
-D__CLANG_ATOMIC_CHAR32_T_LOCK_FREE=2
-D__CLANG_ATOMIC_CHAR_LOCK_FREE=2
-D__CLANG_ATOMIC_INT_LOCK_FREE=2
-D__CLANG_ATOMIC_LLONG_LOCK_FREE=2
-D__CLANG_ATOMIC_LONG_LOCK_FREE=2
-D__CLANG_ATOMIC_POINTER_LOCK_FREE=2
-D__CLANG_ATOMIC_SHORT_LOCK_FREE=2
-D__CLANG_ATOMIC_WCHAR_T_LOCK_FREE=2
-D__CONSTANT_CFSTRINGS__=1
-D__DBL_DECIMAL_DIG__=17
-D__DBL_DENORM_MIN__=4.9406564584124654e-324
-D__DBL_DIG__=15
-D__DBL_EPSILON__=2.2204460492503131e-16
-D__DBL_HAS_DENORM__=1
-D__DBL_HAS_INFINITY__=1
-D__DBL_HAS_QUIET_NAN__=1
-D__DBL_MANT_DIG__=53
-D__DBL_MAX_10_EXP__=308
-D__DBL_MAX_EXP__=1024
-D__DBL_MAX__=1.7976931348623157e+308
-D__DBL_MIN_10_EXP__=(-307)
-D__DBL_MIN_EXP__=(-1021)
-D__DBL_MIN__=2.2250738585072014e-308
-D__DBL_NORM_MAX__=1.7976931348623157e+308
-D__DECIMAL_DIG__=__LDBL_DECIMAL_DIG__
-D__FINITE_MATH_ONLY__=0
-D__FLOAT128__=1
-D__FLT_DECIMAL_DIG__=9
-D__FLT_DENORM_MIN__=1.40129846e-45F
-D__FLT_DIG__=6
-D__FLT_EPSILON__=1.19209290e-7F
-D__FLT_HAS_DENORM__=1
-D__FLT_HAS_INFINITY__=1
-D__FLT_HAS_QUIET_NAN__=1
-D__FLT_MANT_DIG__=24
-D__FLT_MAX_10_EXP__=38
-D__FLT_MAX_EXP__=128
-D__FLT_MAX__=3.40282347e+38F
-D__FLT_MIN_10_EXP__=(-37)
-D__FLT_MIN_EXP__=(-125)
-D__FLT_MIN__=1.17549435e-38F
-D__FLT_NORM_MAX__=3.40282347e+38F
-D__FLT_RADIX__=2
-D__FPCLASS_NEGINF=0x0004
-D__FPCLASS_NEGNORMAL=0x0008
-D__FPCLASS_NEGSUBNORMAL=0x0010
-D__FPCLASS_NEGZERO=0x0020
-D__FPCLASS_POSINF=0x0200
-D__FPCLASS_POSNORMAL=0x0100
-D__FPCLASS_POSSUBNORMAL=0x0080
-D__FPCLASS_POSZERO=0x0040
-D__FPCLASS_QNAN=0x0002
-D__FPCLASS_SNAN=0x0001
-D__GCC_ATOMIC_BOOL_LOCK_FREE=2
-D__GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
-D__GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
-D__GCC_ATOMIC_CHAR_LOCK_FREE=2
-D__GCC_ATOMIC_INT_LOCK_FREE=2
-D__GCC_ATOMIC_LLONG_LOCK_FREE=2
-D__GCC_ATOMIC_LONG_LOCK_FREE=2
-D__GCC_ATOMIC_POINTER_LOCK_FREE=2
-D__GCC_ATOMIC_SHORT_LOCK_FREE=2
-D__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
-D__GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
-D__GCC_CONSTRUCTIVE_SIZE=64
-D__GCC_DESTRUCTIVE_SIZE=64
-D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1
-D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1
-D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1
-D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1
-D__GNUC_MINOR__=2
-D__GNUC_PATCHLEVEL__=1
-D__GNUC_STDC_INLINE__=1
-D__GNUC__=4
-D__GXX_ABI_VERSION=1002
-D__ILP32__=1
-D__INT16_C_SUFFIX__=
-D__INT16_FMTd__="hd"
-D__INT16_FMTi__="hi"
-D__INT16_MAX__=32767
-D__INT16_TYPE__=short
-D__INT32_C_SUFFIX__=
-D__INT32_FMTd__="d"
-D__INT32_FMTi__="i"
-D__INT32_MAX__=2147483647
-D__INT32_TYPE__=int
-D__INT64_C_SUFFIX__=LL
-D__INT64_FMTd__="lld"
-D__INT64_FMTi__="lli"
-D__INT64_MAX__=9223372036854775807LL
-D__INT64_TYPE__=long long int
-D__INT8_C_SUFFIX__=
-D__INT8_FMTd__="hhd"
-D__INT8_FMTi__="hhi"
-D__INT8_MAX__=127
-D__INT8_TYPE__=signed char
-D__INTMAX_C_SUFFIX__=LL
-D__INTMAX_FMTd__="lld"
-D__INTMAX_FMTi__="lli"
-D__INTMAX_MAX__=9223372036854775807LL
-D__INTMAX_TYPE__=long long int
-D__INTMAX_WIDTH__=64
-D__INTPTR_FMTd__="ld"
-D__INTPTR_FMTi__="li"
-D__INTPTR_MAX__=2147483647L
-D__INTPTR_TYPE__=long int
-D__INTPTR_WIDTH__=32
-D__INT_FAST16_FMTd__="hd"
-D__INT_FAST16_FMTi__="hi"
-D__INT_FAST16_MAX__=32767
-D__INT_FAST16_TYPE__=short
-D__INT_FAST16_WIDTH__=16
-D__INT_FAST32_FMTd__="d"
-D__INT_FAST32_FMTi__="i"
-D__INT_FAST32_MAX__=2147483647
-D__INT_FAST32_TYPE__=int
-D__INT_FAST32_WIDTH__=32
-D__INT_FAST64_FMTd__="lld"
-D__INT_FAST64_FMTi__="lli"
-D__INT_FAST64_MAX__=9223372036854775807LL
-D__INT_FAST64_TYPE__=long long int
-D__INT_FAST64_WIDTH__=64
-D__INT_FAST8_FMTd__="hhd"
-D__INT_FAST8_FMTi__="hhi"
-D__INT_FAST8_MAX__=127
-D__INT_FAST8_TYPE__=signed char
-D__INT_FAST8_WIDTH__=8
-D__INT_LEAST16_FMTd__="hd"
-D__INT_LEAST16_FMTi__="hi"
-D__INT_LEAST16_MAX__=32767
-D__INT_LEAST16_TYPE__=short
-D__INT_LEAST16_WIDTH__=16
-D__INT_LEAST32_FMTd__="d"
-D__INT_LEAST32_FMTi__="i"
-D__INT_LEAST32_MAX__=2147483647
-D__INT_LEAST32_TYPE__=int
-D__INT_LEAST32_WIDTH__=32
-D__INT_LEAST64_FMTd__="lld"
-D__INT_LEAST64_FMTi__="lli"
-D__INT_LEAST64_MAX__=9223372036854775807LL
-D__INT_LEAST64_TYPE__=long long int
-D__INT_LEAST64_WIDTH__=64
-D__INT_LEAST8_FMTd__="hhd"
-D__INT_LEAST8_FMTi__="hhi"
-D__INT_LEAST8_MAX__=127
-D__INT_LEAST8_TYPE__=signed char
-D__INT_LEAST8_WIDTH__=8
-D__INT_MAX__=2147483647
-D__INT_WIDTH__=32
-D__LDBL_DECIMAL_DIG__=36
-D__LDBL_DENORM_MIN__=6.47517511943802511092443895822764655e-4966L
-D__LDBL_DIG__=33
-D__LDBL_EPSILON__=1.92592994438723585305597794258492732e-34L
-D__LDBL_HAS_DENORM__=1
-D__LDBL_HAS_INFINITY__=1
-D__LDBL_HAS_QUIET_NAN__=1
-D__LDBL_MANT_DIG__=113
-D__LDBL_MAX_10_EXP__=4932
-D__LDBL_MAX_EXP__=16384
-D__LDBL_MAX__=1.18973149535723176508575932662800702e+4932L
-D__LDBL_MIN_10_EXP__=(-4931)
-D__LDBL_MIN_EXP__=(-16381)
-D__LDBL_MIN__=3.36210314311209350626267781732175260e-4932L
-D__LDBL_NORM_MAX__=1.18973149535723176508575932662800702e+4932L
-D__LITTLE_ENDIAN__=1
-D__LLONG_WIDTH__=64
-D__LONG_LONG_MAX__=9223372036854775807LL
-D__LONG_MAX__=2147483647L
-D__LONG_WIDTH__=32
-D__MEMORY_SCOPE_DEVICE=1
-D__MEMORY_SCOPE_SINGLE=4
-D__MEMORY_SCOPE_SYSTEM=0
-D__MEMORY_SCOPE_WRKGRP=2
-D__MEMORY_SCOPE_WVFRNT=3
-D__NO_INLINE__=1
-D__NO_MATH_ERRNO__=1
-D__OBJC_BOOL_IS_BOOL=0
-D__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES=3
-D__OPENCL_MEMORY_SCOPE_DEVICE=2
-D__OPENCL_MEMORY_SCOPE_SUB_GROUP=4
-D__OPENCL_MEMORY_SCOPE_WORK_GROUP=1
-D__OPENCL_MEMORY_SCOPE_WORK_ITEM=0
-D__ORDER_BIG_ENDIAN__=4321
-D__ORDER_LITTLE_ENDIAN__=1234
-D__ORDER_PDP_ENDIAN__=3412
-D__POINTER_WIDTH__=32
-D__PRAGMA_REDEFINE_EXTNAME=1
-D__PTRDIFF_FMTd__="ld"
-D__PTRDIFF_FMTi__="li"
-D__PTRDIFF_MAX__=2147483647L
-D__PTRDIFF_TYPE__=long int
-D__PTRDIFF_WIDTH__=32
-D__SCHAR_MAX__=127
-D__SHRT_MAX__=32767
-D__SHRT_WIDTH__=16
-D__SIG_ATOMIC_MAX__=2147483647L
-D__SIG_ATOMIC_WIDTH__=32
-D__SIZEOF_DOUBLE__=8
-D__SIZEOF_FLOAT__=4
-D__SIZEOF_INT128__=16
-D__SIZEOF_INT__=4
-D__SIZEOF_LONG_DOUBLE__=16
-D__SIZEOF_LONG_LONG__=8
-D__SIZEOF_LONG__=4
-D__SIZEOF_POINTER__=4
-D__SIZEOF_PTRDIFF_T__=4
-D__SIZEOF_SHORT__=2
-D__SIZEOF_SIZE_T__=4
-D__SIZEOF_WCHAR_T__=4
-D__SIZEOF_WINT_T__=4
-D__SIZE_FMTX__="lX"
-D__SIZE_FMTo__="lo"
-D__SIZE_FMTu__="lu"
-D__SIZE_FMTx__="lx"
-D__SIZE_MAX__=4294967295UL
-D__SIZE_TYPE__=long unsigned int
-D__SIZE_WIDTH__=32
-D__STDC_EMBED_EMPTY__=2
-D__STDC_EMBED_FOUND__=1
-D__STDC_EMBED_NOT_FOUND__=0
-D__STDC_HOSTED__=1
-D__STDC_UTF_16__=1
-D__STDC_UTF_32__=1
-D__STDC_VERSION__=201710L
-D__STDC__=1
-D__STRICT_ANSI__=1
-D__UINT16_C_SUFFIX__=
-D__UINT16_FMTX__="hX"
-D__UINT16_FMTo__="ho"
-D__UINT16_FMTu__="hu"
-D__UINT16_FMTx__="hx"
-D__UINT16_MAX__=65535
-D__UINT16_TYPE__=unsigned short
-D__UINT32_C_SUFFIX__=U
-D__UINT32_FMTX__="X"
-D__UINT32_FMTo__="o"
-D__UINT32_FMTu__="u"
-D__UINT32_FMTx__="x"
-D__UINT32_MAX__=4294967295U
-D__UINT32_TYPE__=unsigned int
-D__UINT64_C_SUFFIX__=ULL
-D__UINT64_FMTX__="llX"
-D__UINT64_FMTo__="llo"
-D__UINT64_FMTu__="llu"
-D__UINT64_FMTx__="llx"
-D__UINT64_MAX__=18446744073709551615ULL
-D__UINT64_TYPE__=long long unsigned int
-D__UINT8_C_SUFFIX__=
-D__UINT8_FMTX__="hhX"
-D__UINT8_FMTo__="hho"
-D__UINT8_FMTu__="hhu"
-D__UINT8_FMTx__="hhx"
-D__UINT8_MAX__=255
-D__UINT8_TYPE__=unsigned char
-D__UINTMAX_C_SUFFIX__=ULL
-D__UINTMAX_FMTX__="llX"
-D__UINTMAX_FMTo__="llo"
-D__UINTMAX_FMTu__="llu"
-D__UINTMAX_FMTx__="llx"
-D__UINTMAX_MAX__=18446744073709551615ULL
-D__UINTMAX_TYPE__=long long unsigned int
-D__UINTMAX_WIDTH__=64
-D__UINTPTR_FMTX__="lX"
-D__UINTPTR_FMTo__="lo"
-D__UINTPTR_FMTu__="lu"
-D__UINTPTR_FMTx__="lx"
-D__UINTPTR_MAX__=4294967295UL
-D__UINTPTR_TYPE__=long unsigned int
-D__UINTPTR_WIDTH__=32
-D__UINT_FAST16_FMTX__="hX"
-D__UINT_FAST16_FMTo__="ho"
-D__UINT_FAST16_FMTu__="hu"
-D__UINT_FAST16_FMTx__="hx"
-D__UINT_FAST16_MAX__=65535
-D__UINT_FAST16_TYPE__=unsigned short
-D__UINT_FAST32_FMTX__="X"
-D__UINT_FAST32_FMTo__="o"
-D__UINT_FAST32_FMTu__="u"
-D__UINT_FAST32_FMTx__="x"
-D__UINT_FAST32_MAX__=4294967295U
-D__UINT_FAST32_TYPE__=unsigned int
-D__UINT_FAST64_FMTX__="llX"
-D__UINT_FAST64_FMTo__="llo"
-D__UINT_FAST64_FMTu__="llu"
-D__UINT_FAST64_FMTx__="llx"
-D__UINT_FAST64_MAX__=18446744073709551615ULL
-D__UINT_FAST64_TYPE__=long long unsigned int
-D__UINT_FAST8_FMTX__="hhX"
-D__UINT_FAST8_FMTo__="hho"
-D__UINT_FAST8_FMTu__="hhu"
-D__UINT_FAST8_FMTx__="hhx"
-D__UINT_FAST8_MAX__=255
-D__UINT_FAST8_TYPE__=unsigned char
-D__UINT_LEAST16_FMTX__="hX"
-D__UINT_LEAST16_FMTo__="ho"
-D__UINT_LEAST16_FMTu__="hu"
-D__UINT_LEAST16_FMTx__="hx"
-D__UINT_LEAST16_MAX__=65535
-D__UINT_LEAST16_TYPE__=unsigned short
-D__UINT_LEAST32_FMTX__="X"
-D__UINT_LEAST32_FMTo__="o"
-D__UINT_LEAST32_FMTu__="u"
-D__UINT_LEAST32_FMTx__="x"
-D__UINT_LEAST32_MAX__=4294967295U
-D__UINT_LEAST32_TYPE__=unsigned int
-D__UINT_LEAST64_FMTX__="llX"
-D__UINT_LEAST64_FMTo__="llo"
-D__UINT_LEAST64_FMTu__="llu"
-D__UINT_LEAST64_FMTx__="llx"
-D__UINT_LEAST64_MAX__=18446744073709551615ULL
-D__UINT_LEAST64_TYPE__=long long unsigned int
-D__UINT_LEAST8_FMTX__="hhX"
-D__UINT_LEAST8_FMTo__="hho"
-D__UINT_LEAST8_FMTu__="hhu"
-D__UINT_LEAST8_FMTx__="hhx"
-D__UINT_LEAST8_MAX__=255
-D__UINT_LEAST8_TYPE__=unsigned char
-D__USER_LABEL_PREFIX__=
-D__VERSION__="Debian Clang 19.1.7 (3+b1)"
-D__WCHAR_MAX__=2147483647
-D__WCHAR_TYPE__=int
-D__WCHAR_WIDTH__=32
-D__WINT_MAX__=2147483647
-D__WINT_TYPE__=int
-D__WINT_WIDTH__=32
-D__clang__=1
-D__clang_literal_encoding__="UTF-8"
-D__clang_major__=19
-D__clang_minor__=1
-D__clang_patchlevel__=7
-D__clang_version__="19.1.7 (3+b1)"
-D__clang_wide_literal_encoding__="UTF-32"
-D__llvm__=1
-D__wasm=1
-D__wasm32=1
-D__wasm32__=1
-D__wasm__=1
-D__wasm_multivalue__=1
-D__wasm_mutable_globals__=1
-D__wasm_reference_types__=1
-D__wasm_sign_ext__=1
-D__wasm_simd128__=1
--clang
--clang_version=190107
--c17
intelliSenseMode: linux-clang-x64
Update IntelliSense time (sec): 0.197
LSP: (received) cpptools/getCodeActions: file://$PROJECT/test.c (id: 12)
LSP: (invoked) cpptools/getCodeActions: file://$PROJECT/test.c (id: 12)
LSP: Sending response (id: 12)
LSP: (received) cpptools/getFoldingRanges: file://$PROJECT/test.c (id: 13)
LSP: (invoked) cpptools/getFoldingRanges: file://$PROJECT/test.c (id: 13)
LSP: Sending response (id: 13)
LSP: (received) cpptools/getCodeActions: file://$PROJECT/test.c (id: 14)
LSP: (invoked) cpptools/getCodeActions: file://$PROJECT/test.c (id: 14)
LSP: Sending response (id: 14)
LSP: (received) cpptools/getFoldingRanges: file://$PROJECT/test.c (id: 15)
LSP: (invoked) cpptools/getFoldingRanges: file://$PROJECT/test.c (id: 15)
LSP: Sending response (id: 15)
LSP: (received) cpptools/hover: file://$PROJECT/test.c (id: 16)
LSP: (invoked) cpptools/hover: file://$PROJECT/test.c (id: 16)
LSP: Sending response (id: 16)
LSP: (received) textDocument/definition: file://$PROJECT/test.c (id: 17)
LSP: (invoked) textDocument/definition: file://$PROJECT/test.c (id: 17)
LSP: Sending response (id: 17)
LSP: (received) textDocument/didOpen: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h
LSP: (received) textDocument/didClose: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h
LSP: (invoked) textDocument/didOpen: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h
LSP: (received) cpptools/didChangeVisibleTextEditors
textDocument/didOpen: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h
LSP: (invoked) textDocument/didClose: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/hover: file://$PROJECT/test.c (id: 18)
LSP: (invoked) cpptools/hover: file://$PROJECT/test.c (id: 18)
LSP: Sending response (id: 18)
LSP: (received) cpptools/getCodeActions: file://$PROJECT/test.c (id: 19)
LSP: (invoked) cpptools/getCodeActions: file://$PROJECT/test.c (id: 19)
LSP: Sending response (id: 19)
LSP: (received) textDocument/definition: file://$PROJECT/test.c (id: 20)
LSP: (received) cpptools/didChangeTextEditorSelection
LSP: (invoked) textDocument/definition: file://$PROJECT/test.c (id: 20)
LSP: (invoked) cpptools/didChangeTextEditorSelection
LSP: Sending response (id: 20)
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) textDocument/didOpen: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) textDocument/didOpen: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h
LSP: (received) cpptools/getCodeActions: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 21)
textDocument/didOpen: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeActiveEditor: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h
LSP: (received) cpptools/getDocumentSymbols: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 22)
LSP: (received) cpptools/didChangeTextEditorSelection
LSP: (invoked) cpptools/getCodeActions: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 21)
LSP: (invoked) cpptools/didChangeVisibleTextEditors
Intellisense update pending for: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h
LSP: (invoked) cpptools/didChangeActiveEditor: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h
LSP: (invoked) cpptools/getDocumentSymbols: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 22)
LSP: (invoked) cpptools/didChangeTextEditorSelection
LSP: Sending response (id: 21)
LSP: Sending response (id: 22)
LSP: (received) textDocument/documentHighlight: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 23)
LSP: (invoked) textDocument/documentHighlight: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 23)
LSP: (received) cpptools/getCodeActions: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 24)
LSP: (invoked) cpptools/getCodeActions: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 24)
LSP: (received) cpptools/getFoldingRanges: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 25)
LSP: (invoked) cpptools/getFoldingRanges: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 25)
LSP: Sending response (id: 25)
LSP: $/cancelRequest (cpptools/getCodeActions, id: 24)
LSP: (received) cpptools/getCodeActions: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 26)
LSP: (invoked) cpptools/getCodeActions: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 26)
LSP: (received) cpptools/getFoldingRanges: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 27)
LSP: (invoked) cpptools/getFoldingRanges: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 27)
LSP: Sending response (id: 27)
LSP: Sending response (id: 23)
LSP: Sending response (id: 26)
IntelliSense update scheduled and TU acquisition started for: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h
LSP: (received) cpptools/getCodeActions: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 28)
LSP: (invoked) cpptools/getCodeActions: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 28)
LSP: Sending response (id: 28)
Update IntelliSense time (sec): 0.534
LSP: (received) cpptools/getFoldingRanges: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 29)
LSP: (invoked) cpptools/getFoldingRanges: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 29)
LSP: Sending response (id: 29)
LSP: (received) cpptools/getCodeActions: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 30)
LSP: (invoked) cpptools/getCodeActions: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 30)
LSP: Sending response (id: 30)
LSP: (received) cpptools/getFoldingRanges: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 31)
LSP: (invoked) cpptools/getFoldingRanges: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 31)
LSP: Sending response (id: 31)
LSP: (received) cpptools/hover: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 32)
LSP: (invoked) cpptools/hover: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 32)
LSP: Sending response (id: 32)
LSP: (received) textDocument/definition: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 33)
LSP: (invoked) textDocument/definition: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 33)
LSP: Sending response (id: 33)
LSP: (received) textDocument/documentHighlight: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 34)
LSP: (invoked) textDocument/documentHighlight: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 34)
LSP: $/cancelRequest (textDocument/documentHighlight, id: 34)
LSP: (received) textDocument/documentHighlight: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 35)
LSP: (invoked) textDocument/documentHighlight: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 35)
LSP: Sending response (id: 35)
LSP: (received) cpptools/hover: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 36)
LSP: (invoked) cpptools/hover: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 36)
LSP: Sending response (id: 36)
LSP: (received) cpptools/hover: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 37)
LSP: (invoked) cpptools/hover: file:///usr/lib/llvm-19/lib/clang/19/include/wasm_simd128.h (id: 37)
LSP: Sending response (id: 37)
Other Extensions
I've confirmed this to occur with all extensions except ms-vscode.cpptools manually disabled.
code $(code --list-extensions | grep -v ms-vscode.cpptools | xargs -I % echo '--disable-extension %')
This is included in the reproduction steps.
Additional context
This particular reproduction is also in part because IntelliSense is incorrectly inferring implicit function declarations, when with "cStandard": "c17", they very, very obviously shouldn't exist. (That was removed starting C99, over 25 years ago.) Also, even if that wouldn't catch it, -Wall implies -Wmost, which implies -Wimplicit, which implies -Wimplicit-function-declaration, and -Wimplicit-function-declaration is supposed to warn on implicit function declarations, and so it should've been caught anyways. I've filed #14768 about "cStandard": "c17" and mentioned the other one in a comment.
Environment
Bug Summary and Steps to Reproduce
Bug Summary:
When using Clang to build a freestanding
--target=wasm32library inside WSL, IntelliSense fails to detect available__builtin_*WebAssembly intrinsics, and thus when an WebAssembly macro intrinsic (likewasm_i32x4_shuffle) is used, the expression is displayed with an error. In the case of that particular intrinsic, the error isinvalid type conversion C/C++(171), because 1. IntelliSense is unaware of__builtin_wasm_shuffle_i8x16and instead uses an implicit declaration ofint __builtin_wasm_shuffle_i8x16()and 2.wasm_i32x4_shuffleis defined inwasm_simd128.has follows:I inferred this as the likely cause because if you Alt+click the function and explore the 100+ displayed errors in that file, you can easily find other cases where IntelliSense is complaining about the same kind of cast.
Steps to reproduce:
Start WSL and make sure you have Clang 19.1.7 installed. (Later versions of Clang use a different method internally for the shuffle intrinsic.) Also, ensure there are no open VSCode windows and that no VSCode server is running in the background in the WSL VM. (You can check this pretty quickly with
top/htop.)Create a directory with the following file structure:
.vscode/c_cpp_properties.json: see below.vscode/settings.json:{ "C_Cpp.loggingLevel": "Debug" }test.c:Compile the module and observe no errors occurred during compilation:
Open VSCode with only
ms-vscode.cpptoolsrunning:Open
test.c.You will observe that line 6 displays an error squiggle, and if you hover over it, it displays
invalid type conversion C/C++(171).Alt+click the
wasm_i32x4_shuffle, the one marked with an error. This will navigate to the includedwasm_simd128.h, where that macro is.Scroll down a little bit, and you'll see the following function:
You will observe that an error squiggle is also displayed over the opening
(of(v128_t), and if you hover over it, it displays the same errorinvalid type conversion C/C++(171).Hover over
__builtin_wasm_swizzle_i8x16.You will observe the prototype detected is
int __builtin_wasm_swizzle_i8x16().Scroll down a little bit further, and you'll see the following function:
Hover over
__builtin_convertvector.You will observe it instead just shows
__builtin_convertvector, not as a function, but as a simple identifier.Expected behavior:
No errors to appear, and
__builtin_wasm_swizzle_i8x16to show up the same way as__builtin_convertvector, as a builtin rather than as an implicitly defined function.Configuration and Logs
Other Extensions
I've confirmed this to occur with all extensions except
ms-vscode.cpptoolsmanually disabled.code $(code --list-extensions | grep -v ms-vscode.cpptools | xargs -I % echo '--disable-extension %')This is included in the reproduction steps.
Additional context
This particular reproduction is also in part because IntelliSense is incorrectly inferring implicit function declarations, when with
"cStandard": "c17", they very, very obviously shouldn't exist. (That was removed starting C99, over 25 years ago.) Also, even if that wouldn't catch it,-Wallimplies-Wmost, which implies-Wimplicit, which implies-Wimplicit-function-declaration, and-Wimplicit-function-declarationis supposed to warn on implicit function declarations, and so it should've been caught anyways. I've filed #14768 about"cStandard": "c17"and mentioned the other one in a comment.