microsoft / vscode-cpptools

Official repository for the Microsoft C/C++ extension for VS Code.
Other
5.53k stars 1.56k forks source link

Incorrectly asking for host platform when querying the cross compiler #11490

Closed mmarczell-graphisoft closed 11 months ago

mmarczell-graphisoft commented 1 year ago

Environment

Bug Summary and Steps to Reproduce

Bug Summary: Cpptools sends an incorrect --target argument specifying the host platform, when querying the compiler in a cross compilation workflow.

Steps to reproduce:

  1. Use a Mac with an Apple Silicon processor.
  2. Install the Emscripten SDK according to https://emscripten.org/docs/getting_started/downloads.html
  3. Clone the minimal repro at https://github.com/mmarczell-graphisoft/arm_mac_includes
  4. Open the workspace. When asked to specify the cmake kit, select "Emscripten"
  5. Open main.cpp, wait for intellisense to finish
  6. See the two includes underlined with red

Expected behavior: No errors should be detected in the file.

Configuration and Logs

{
    "configurations": [
        {
            "name": "Mac",
            "compilerPath": "${env:EMSDK}/upstream/emscripten/em++",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "linux-clang-x64",
            "configurationProvider": "ms-vscode.cmake-tools",
            "compileCommands": "Build/compile_commands.json"
        }
    ],
    "version": 4,
    "enableConfigurationSquiggles": true
}

loggingLevel: Debug
cpptools version (TypeScript): 1.17.5
cpptools version (native): 1.17.5.0
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
LSP: cpptools/didChangeCppProperties (id: 1)
LSP: cpptools/queryCompilerDefaults (id: 2)
Code browsing service initialized
Querying compiler for default C++ language standard using command line: /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/em++ -x c++ -E -dM /dev/null
Detected language standard version: c++17
Querying compiler's default target using command line: "/Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/em++" -dumpmachine
Custom configuration provider 'CMake Tools' registered
Compiler returned default target value: wasm32-unknown-emscripten
Unhandled default compiler target value detected: wasm32-unknown-emscripten
Compiler query command line: /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/em++ -std=c++17 -m64 -Wp,-v -fno-blocks -E -dM -x c++ /dev/null
Attempting to get defaults from C++ compiler in "compilerPath" property: '/Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/em++'
Compiler query command line: /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/em++ -std=c17 -m64 -Wp,-v -fno-blocks -E -dM -x c /dev/null
Attempting to get defaults from C compiler in "compilerPath" property: '/Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/em++'
  Folder: /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/cache/sysroot/include/ will be indexed
  Folder: /Volumes/Data/Users/bimxm1/git/emsdk/upstream/lib/clang/17/include/ will be indexed
  Folder: /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/ will be indexed
Discovering files...
  Processing folder (recursive): /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/cache/sysroot/include/
Querying compiler for default C++ language standard using command line: /usr/bin/clang -x c++ -E -dM /dev/null
Compiler returned default language standard version: c++98. Since this version is old, will try to use newer version c++17 as default.
Querying compiler's default target using command line: "/usr/bin/clang" -dumpmachine
Compiler returned default target value: arm64-apple-darwin22.6.0
Compiler query command line: /usr/bin/clang -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'
Compiler query command line: /usr/bin/clang -std=c++17 -Wp,-v -fno-blocks -E -dM -x c++ /dev/null
Attempting to get defaults from C++ compiler in "compilerPath" property: '/usr/bin/clang'
LSP: cpptools/didChangeCppProperties (id: 3)
LSP: cpptools/didChangeCppProperties (id: 4)
LSP: cpptools/pauseParsing
LSP: cpptools/clearCustomConfigurations
LSP: cpptools/clearCustomConfigurations
  Processing folder (recursive): /Volumes/Data/Users/bimxm1/git/emsdk/upstream/lib/clang/17/include/
  Processing folder (recursive): /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/
  Discovering files: 1647 file(s) processed
  0 file(s) removed from database
Done discovering files.
Populating include completion cache.
Parsing remaining files...
Custom browse configuration received: {
  "browsePath": [
    "/volumes/macintosh hd/users/bimxm1/sandbox/arm_mac_includes"
  ],
  "compilerPath": "/volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++",
  "compilerArgs": [],
  "compilerFragments": [
    "-g",
    "-std=c++17",
    "-pthread",
    "-Wall"
  ]
}
LSP: cpptools/queryCompilerDefaults (id: 5)
LSP: cpptools/didChangeCustomBrowseConfiguration
LSP: cpptools/clearCustomConfigurations
LSP: cpptools/resumeParsing
Querying compiler for default C++ language standard using command line: /volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++ -x c++ -E -dM /dev/null
Custom browse configuration received: {
  "browsePath": [
    "/volumes/macintosh hd/users/bimxm1/sandbox/arm_mac_includes"
  ],
  "compilerPath": "/volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++",
  "compilerArgs": [],
  "compilerFragments": [
    "-g",
    "-std=c++17",
    "-pthread",
    "-Wall"
  ]
}
LSP: cpptools/didChangeCustomBrowseConfiguration
LSP: cpptools/clearCustomConfigurations
LSP: cpptools/resumeParsing
Detected language standard version: c++17
Querying compiler's default target using command line: "/volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++" -dumpmachine
Compiler returned default target value: wasm32-unknown-emscripten
Unhandled default compiler target value detected: wasm32-unknown-emscripten
Compiler query command line: /volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++ -std=c17 --target=aarch64-arm-none-eabi -Wp,-v -fno-blocks -E -dM -x c /dev/null
Attempting to get defaults from C compiler in "compilerPath" property: '/volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++'
Compiler query command line: /volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++ -std=c++17 --target=aarch64-arm-none-eabi -Wp,-v -fno-blocks -E -dM -x c++ /dev/null
Attempting to get defaults from C++ compiler in "compilerPath" property: '/volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++'
Compiler query command line: /volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++ -g -std=c++17 -pthread -Wall --target=aarch64-arm-none-eabi -Wp,-v -fno-blocks -E -dM -x c++ /dev/null
Attempting to get defaults from C++ compiler in "compilerPath" property: '/volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++'
  Folder: /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/cache/sysroot/include/fakesdl/ will be indexed
  Folder: /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/cache/sysroot/include/compat/ will be indexed
  Folder: /Volumes/Data/Users/bimxm1/git/emsdk/upstream/lib/clang/17/include/ will be indexed
  Folder: /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/ will be indexed
Aborting tag parse at root
  Parsing: 1 files(s) processed
Discovering files...
  Processing folder (recursive): /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/cache/sysroot/include/fakesdl/
  Processing folder (recursive): /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/cache/sysroot/include/compat/
  Processing folder (recursive): /Volumes/Data/Users/bimxm1/git/emsdk/upstream/lib/clang/17/include/
  Processing folder (recursive): /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/
  Discovering files: 284 file(s) processed
  1377 file(s) removed from database
Done discovering files.
Populating include completion cache.
Parsing remaining files...
  tag parsing file: /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp
  Parsing: 1 files(s) processed
Done parsing remaining files.
LSP: cpptools/didChangeCustomBrowseConfiguration
LSP: cpptools/resumeParsing
LSP: cpptools/didChangeCustomBrowseConfiguration
LSP: cpptools/resumeParsing
LSP: cpptools/didChangeCompileCommands: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/Build/compile_commands.json
LSP: cpptools/pauseCodeAnalysis
LSP: cpptools/queryTranslationUnitSource: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp (id: 6)
Custom configurations received:
  uri: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp
  config: {
  "includePath": [],
  "defines": [],
  "compilerPath": "/volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++",
  "compilerArgs": [],
  "compilerFragments": [
    "-g",
    "-std=c++17",
    "-pthread",
    "-Wall"
  ]
}
LSP: cpptools/didChangeCustomConfiguration
LSP: textDocument/didOpen: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp
Compiler query command line: /volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++ -g -std=c++17 -pthread -Wall --target=aarch64-arm-none-eabi -Wp,-v -fno-blocks -E -dM -x c++ /dev/null
LSP: cpptools/activeDocumentChange: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp
LSP: cpptools/textEditorSelectionChange
LSP: cpptools/getDocumentSymbols: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp (id: 7)
LSP: cpptools/getSemanticTokens: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp (id: 8)
LSP: cpptools/getInlayHints: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp (id: 9)
Attempting to get defaults from C++ compiler in "compilerPath" property: '/volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++'
Database safe to open.
sending compilation args for /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp
  include: /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/cache/sysroot/include/fakesdl
  include: /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/cache/sysroot/include/compat
  include: /Volumes/Data/Users/bimxm1/git/emsdk/upstream/lib/clang/17/include
  define: EMSCRIPTEN=1
  define: _LP64=1
  define: __AARCH64EL__=1
  define: __AARCH64_CMODEL_SMALL__=1
  define: __ARM_64BIT_STATE=1
  define: __ARM_ACLE=200
  define: __ARM_ALIGN_MAX_STACK_PWR=4
  define: __ARM_ARCH=8
  define: __ARM_ARCH_ISA_A64=1
  define: __ARM_ARCH_PROFILE='A'
  define: __ARM_FEATURE_CLZ=1
  define: __ARM_FEATURE_DIRECTED_ROUNDING=1
  define: __ARM_FEATURE_DIV=1
  define: __ARM_FEATURE_FMA=1
  define: __ARM_FEATURE_IDIV=1
  define: __ARM_FEATURE_LDREX=0xF
  define: __ARM_FEATURE_NUMERIC_MAXMIN=1
  define: __ARM_FEATURE_UNALIGNED=1
  define: __ARM_FP=0xE
  define: __ARM_FP16_ARGS=1
  define: __ARM_FP16_FORMAT_IEEE=1
  define: __ARM_NEON=1
  define: __ARM_NEON_FP=0xE
  define: __ARM_PCS_AAPCS64=1
  define: __ARM_SIZEOF_MINIMAL_ENUM=4
  define: __ARM_SIZEOF_WCHAR_T=4
  define: __ATOMIC_ACQUIRE=2
  define: __ATOMIC_ACQ_REL=4
  define: __ATOMIC_CONSUME=1
  define: __ATOMIC_RELAXED=0
  define: __ATOMIC_RELEASE=3
  define: __ATOMIC_SEQ_CST=5
  define: __BIGGEST_ALIGNMENT__=16
  define: __BITINT_MAXWIDTH__=128
  define: __BOOL_WIDTH__=8
  define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __CHAR16_TYPE__=unsigned short
  define: __CHAR32_TYPE__=unsigned int
  define: __CHAR_BIT__=8
  define: __CHAR_UNSIGNED__=1
  define: __CLANG_ATOMIC_BOOL_LOCK_FREE=2
  define: __CLANG_ATOMIC_CHAR16_T_LOCK_FREE=2
  define: __CLANG_ATOMIC_CHAR32_T_LOCK_FREE=2
  define: __CLANG_ATOMIC_CHAR_LOCK_FREE=2
  define: __CLANG_ATOMIC_INT_LOCK_FREE=2
  define: __CLANG_ATOMIC_LLONG_LOCK_FREE=2
  define: __CLANG_ATOMIC_LONG_LOCK_FREE=2
  define: __CLANG_ATOMIC_POINTER_LOCK_FREE=2
  define: __CLANG_ATOMIC_SHORT_LOCK_FREE=2
  define: __CLANG_ATOMIC_WCHAR_T_LOCK_FREE=2
  define: __CONSTANT_CFSTRINGS__=1
  define: __DBL_DECIMAL_DIG__=17
  define: __DBL_DENORM_MIN__=4.9406564584124654e-324
  define: __DBL_DIG__=15
  define: __DBL_EPSILON__=2.2204460492503131e-16
  define: __DBL_HAS_DENORM__=1
  define: __DBL_HAS_INFINITY__=1
  define: __DBL_HAS_QUIET_NAN__=1
  define: __DBL_MANT_DIG__=53
  define: __DBL_MAX_10_EXP__=308
  define: __DBL_MAX_EXP__=1024
  define: __DBL_MAX__=1.7976931348623157e+308
  define: __DBL_MIN_10_EXP__=(-307)
  define: __DBL_MIN_EXP__=(-1021)
  define: __DBL_MIN__=2.2250738585072014e-308
  define: __DECIMAL_DIG__=__LDBL_DECIMAL_DIG__
  define: __DEPRECATED=1
  define: __ELF__=1
  define: __EMSCRIPTEN_SHARED_MEMORY__=1
  define: __EXCEPTIONS=1
  define: __FINITE_MATH_ONLY__=0
  define: __FLT16_DECIMAL_DIG__=5
  define: __FLT16_DENORM_MIN__=5.9604644775390625e-8F16
  define: __FLT16_DIG__=3
  define: __FLT16_EPSILON__=9.765625e-4F16
  define: __FLT16_HAS_DENORM__=1
  define: __FLT16_HAS_INFINITY__=1
  define: __FLT16_HAS_QUIET_NAN__=1
  define: __FLT16_MANT_DIG__=11
  define: __FLT16_MAX_10_EXP__=4
  define: __FLT16_MAX_EXP__=16
  define: __FLT16_MAX__=6.5504e+4F16
  define: __FLT16_MIN_10_EXP__=(-4)
  define: __FLT16_MIN_EXP__=(-13)
  define: __FLT16_MIN__=6.103515625e-5F16
  define: __FLT_DECIMAL_DIG__=9
  define: __FLT_DENORM_MIN__=1.40129846e-45F
  define: __FLT_DIG__=6
  define: __FLT_EPSILON__=1.19209290e-7F
  define: __FLT_HAS_DENORM__=1
  define: __FLT_HAS_INFINITY__=1
  define: __FLT_HAS_QUIET_NAN__=1
  define: __FLT_MANT_DIG__=24
  define: __FLT_MAX_10_EXP__=38
  define: __FLT_MAX_EXP__=128
  define: __FLT_MAX__=3.40282347e+38F
  define: __FLT_MIN_10_EXP__=(-37)
  define: __FLT_MIN_EXP__=(-125)
  define: __FLT_MIN__=1.17549435e-38F
  define: __FLT_RADIX__=2
  define: __FP_FAST_FMA=1
  define: __FP_FAST_FMAF=1
  define: __GCC_ATOMIC_BOOL_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
  define: __GCC_ATOMIC_INT_LOCK_FREE=2
  define: __GCC_ATOMIC_LLONG_LOCK_FREE=2
  define: __GCC_ATOMIC_LONG_LOCK_FREE=2
  define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
  define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
  define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
  define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
  define: __GCC_HAVE_DWARF2_CFI_ASM=1
  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: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1
  define: __GNUC_GNU_INLINE__=1
  define: __GNUC_MINOR__=2
  define: __GNUC_PATCHLEVEL__=1
  define: __GNUC__=4
  define: __GNUG__=4
  define: __GXX_ABI_VERSION=1002
  define: __GXX_EXPERIMENTAL_CXX0X__=1
  define: __GXX_RTTI=1
  define: __GXX_WEAK__=1
  define: __INT16_C_SUFFIX__=
  define: __INT16_FMTd__="hd"
  define: __INT16_FMTi__="hi"
  define: __INT16_MAX__=32767
  define: __INT16_TYPE__=short
  define: __INT32_C_SUFFIX__=
  define: __INT32_FMTd__="d"
  define: __INT32_FMTi__="i"
  define: __INT32_MAX__=2147483647
  define: __INT32_TYPE__=int
  define: __INT64_C_SUFFIX__=L
  define: __INT64_FMTd__="ld"
  define: __INT64_FMTi__="li"
  define: __INT64_MAX__=9223372036854775807L
  define: __INT64_TYPE__=long int
  define: __INT8_C_SUFFIX__=
  define: __INT8_FMTd__="hhd"
  define: __INT8_FMTi__="hhi"
  define: __INT8_MAX__=127
  define: __INT8_TYPE__=signed char
  define: __INTMAX_C_SUFFIX__=L
  define: __INTMAX_FMTd__="ld"
  define: __INTMAX_FMTi__="li"
  define: __INTMAX_MAX__=9223372036854775807L
  define: __INTMAX_TYPE__=long int
  define: __INTMAX_WIDTH__=64
  define: __INTPTR_FMTd__="ld"
  define: __INTPTR_FMTi__="li"
  define: __INTPTR_MAX__=9223372036854775807L
  define: __INTPTR_TYPE__=long int
  define: __INTPTR_WIDTH__=64
  define: __INT_FAST16_FMTd__="hd"
  define: __INT_FAST16_FMTi__="hi"
  define: __INT_FAST16_MAX__=32767
  define: __INT_FAST16_TYPE__=short
  define: __INT_FAST16_WIDTH__=16
  define: __INT_FAST32_FMTd__="d"
  define: __INT_FAST32_FMTi__="i"
  define: __INT_FAST32_MAX__=2147483647
  define: __INT_FAST32_TYPE__=int
  define: __INT_FAST32_WIDTH__=32
  define: __INT_FAST64_FMTd__="ld"
  define: __INT_FAST64_FMTi__="li"
  define: __INT_FAST64_MAX__=9223372036854775807L
  define: __INT_FAST64_TYPE__=long int
  define: __INT_FAST64_WIDTH__=64
  define: __INT_FAST8_FMTd__="hhd"
  define: __INT_FAST8_FMTi__="hhi"
  define: __INT_FAST8_MAX__=127
  define: __INT_FAST8_TYPE__=signed char
  define: __INT_FAST8_WIDTH__=8
  define: __INT_LEAST16_FMTd__="hd"
  define: __INT_LEAST16_FMTi__="hi"
  define: __INT_LEAST16_MAX__=32767
  define: __INT_LEAST16_TYPE__=short
  define: __INT_LEAST16_WIDTH__=16
  define: __INT_LEAST32_FMTd__="d"
  define: __INT_LEAST32_FMTi__="i"
  define: __INT_LEAST32_MAX__=2147483647
  define: __INT_LEAST32_TYPE__=int
  define: __INT_LEAST32_WIDTH__=32
  define: __INT_LEAST64_FMTd__="ld"
  define: __INT_LEAST64_FMTi__="li"
  define: __INT_LEAST64_MAX__=9223372036854775807L
  define: __INT_LEAST64_TYPE__=long int
  define: __INT_LEAST64_WIDTH__=64
  define: __INT_LEAST8_FMTd__="hhd"
  define: __INT_LEAST8_FMTi__="hhi"
  define: __INT_LEAST8_MAX__=127
  define: __INT_LEAST8_TYPE__=signed char
  define: __INT_LEAST8_WIDTH__=8
  define: __INT_MAX__=2147483647
  define: __INT_WIDTH__=32
  define: __LDBL_DECIMAL_DIG__=36
  define: __LDBL_DENORM_MIN__=6.47517511943802511092443895822764655e-4966L
  define: __LDBL_DIG__=33
  define: __LDBL_EPSILON__=1.92592994438723585305597794258492732e-34L
  define: __LDBL_HAS_DENORM__=1
  define: __LDBL_HAS_INFINITY__=1
  define: __LDBL_HAS_QUIET_NAN__=1
  define: __LDBL_MANT_DIG__=113
  define: __LDBL_MAX_10_EXP__=4932
  define: __LDBL_MAX_EXP__=16384
  define: __LDBL_MAX__=1.18973149535723176508575932662800702e+4932L
  define: __LDBL_MIN_10_EXP__=(-4931)
  define: __LDBL_MIN_EXP__=(-16381)
  define: __LDBL_MIN__=3.36210314311209350626267781732175260e-4932L
  define: __LITTLE_ENDIAN__=1
  define: __LLONG_WIDTH__=64
  define: __LONG_LONG_MAX__=9223372036854775807LL
  define: __LONG_MAX__=9223372036854775807L
  define: __LONG_WIDTH__=64
  define: __LP64__=1
  define: __NO_INLINE__=1
  define: __OBJC_BOOL_IS_BOOL=0
  define: __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES=3
  define: __OPENCL_MEMORY_SCOPE_DEVICE=2
  define: __OPENCL_MEMORY_SCOPE_SUB_GROUP=4
  define: __OPENCL_MEMORY_SCOPE_WORK_GROUP=1
  define: __OPENCL_MEMORY_SCOPE_WORK_ITEM=0
  define: __ORDER_BIG_ENDIAN__=4321
  define: __ORDER_LITTLE_ENDIAN__=1234
  define: __ORDER_PDP_ENDIAN__=3412
  define: __POINTER_WIDTH__=64
  define: __PRAGMA_REDEFINE_EXTNAME=1
  define: __PTRDIFF_FMTd__="ld"
  define: __PTRDIFF_FMTi__="li"
  define: __PTRDIFF_MAX__=9223372036854775807L
  define: __PTRDIFF_TYPE__=long int
  define: __PTRDIFF_WIDTH__=64
  define: __SCHAR_MAX__=127
  define: __SHRT_MAX__=32767
  define: __SHRT_WIDTH__=16
  define: __SIG_ATOMIC_MAX__=2147483647
  define: __SIG_ATOMIC_WIDTH__=32
  define: __SIZEOF_DOUBLE__=8
  define: __SIZEOF_FLOAT__=4
  define: __SIZEOF_INT128__=16
  define: __SIZEOF_INT__=4
  define: __SIZEOF_LONG_DOUBLE__=16
  define: __SIZEOF_LONG_LONG__=8
  define: __SIZEOF_LONG__=8
  define: __SIZEOF_POINTER__=8
  define: __SIZEOF_PTRDIFF_T__=8
  define: __SIZEOF_SHORT__=2
  define: __SIZEOF_SIZE_T__=8
  define: __SIZEOF_WCHAR_T__=4
  define: __SIZEOF_WINT_T__=4
  define: __SIZE_FMTX__="lX"
  define: __SIZE_FMTo__="lo"
  define: __SIZE_FMTu__="lu"
  define: __SIZE_FMTx__="lx"
  define: __SIZE_MAX__=18446744073709551615UL
  define: __SIZE_TYPE__=long unsigned int
  define: __SIZE_WIDTH__=64
  define: __STDCPP_DEFAULT_NEW_ALIGNMENT__=16UL
  define: __STDCPP_THREADS__=1
  define: __STDC_HOSTED__=1
  define: __STDC_UTF_16__=1
  define: __STDC_UTF_32__=1
  define: __STDC__=1
  define: __STRICT_ANSI__=1
  define: __UINT16_C_SUFFIX__=
  define: __UINT16_FMTX__="hX"
  define: __UINT16_FMTo__="ho"
  define: __UINT16_FMTu__="hu"
  define: __UINT16_FMTx__="hx"
  define: __UINT16_MAX__=65535
  define: __UINT16_TYPE__=unsigned short
  define: __UINT32_C_SUFFIX__=U
  define: __UINT32_FMTX__="X"
  define: __UINT32_FMTo__="o"
  define: __UINT32_FMTu__="u"
  define: __UINT32_FMTx__="x"
  define: __UINT32_MAX__=4294967295U
  define: __UINT32_TYPE__=unsigned int
  define: __UINT64_C_SUFFIX__=UL
  define: __UINT64_FMTX__="lX"
  define: __UINT64_FMTo__="lo"
  define: __UINT64_FMTu__="lu"
  define: __UINT64_FMTx__="lx"
  define: __UINT64_MAX__=18446744073709551615UL
  define: __UINT64_TYPE__=long unsigned int
  define: __UINT8_C_SUFFIX__=
  define: __UINT8_FMTX__="hhX"
  define: __UINT8_FMTo__="hho"
  define: __UINT8_FMTu__="hhu"
  define: __UINT8_FMTx__="hhx"
  define: __UINT8_MAX__=255
  define: __UINT8_TYPE__=unsigned char
  define: __UINTMAX_C_SUFFIX__=UL
  define: __UINTMAX_FMTX__="lX"
  define: __UINTMAX_FMTo__="lo"
  define: __UINTMAX_FMTu__="lu"
  define: __UINTMAX_FMTx__="lx"
  define: __UINTMAX_MAX__=18446744073709551615UL
  define: __UINTMAX_TYPE__=long unsigned int
  define: __UINTMAX_WIDTH__=64
  define: __UINTPTR_FMTX__="lX"
  define: __UINTPTR_FMTo__="lo"
  define: __UINTPTR_FMTu__="lu"
  define: __UINTPTR_FMTx__="lx"
  define: __UINTPTR_MAX__=18446744073709551615UL
  define: __UINTPTR_TYPE__=long unsigned int
  define: __UINTPTR_WIDTH__=64
  define: __UINT_FAST16_FMTX__="hX"
  define: __UINT_FAST16_FMTo__="ho"
  define: __UINT_FAST16_FMTu__="hu"
  define: __UINT_FAST16_FMTx__="hx"
  define: __UINT_FAST16_MAX__=65535
  define: __UINT_FAST16_TYPE__=unsigned short
  define: __UINT_FAST32_FMTX__="X"
  define: __UINT_FAST32_FMTo__="o"
  define: __UINT_FAST32_FMTu__="u"
  define: __UINT_FAST32_FMTx__="x"
  define: __UINT_FAST32_MAX__=4294967295U
  define: __UINT_FAST32_TYPE__=unsigned int
  define: __UINT_FAST64_FMTX__="lX"
  define: __UINT_FAST64_FMTo__="lo"
  define: __UINT_FAST64_FMTu__="lu"
  define: __UINT_FAST64_FMTx__="lx"
  define: __UINT_FAST64_MAX__=18446744073709551615UL
  define: __UINT_FAST64_TYPE__=long unsigned int
  define: __UINT_FAST8_FMTX__="hhX"
  define: __UINT_FAST8_FMTo__="hho"
  define: __UINT_FAST8_FMTu__="hhu"
  define: __UINT_FAST8_FMTx__="hhx"
  define: __UINT_FAST8_MAX__=255
  define: __UINT_FAST8_TYPE__=unsigned char
  define: __UINT_LEAST16_FMTX__="hX"
  define: __UINT_LEAST16_FMTo__="ho"
  define: __UINT_LEAST16_FMTu__="hu"
  define: __UINT_LEAST16_FMTx__="hx"
  define: __UINT_LEAST16_MAX__=65535
  define: __UINT_LEAST16_TYPE__=unsigned short
  define: __UINT_LEAST32_FMTX__="X"
  define: __UINT_LEAST32_FMTo__="o"
  define: __UINT_LEAST32_FMTu__="u"
  define: __UINT_LEAST32_FMTx__="x"
  define: __UINT_LEAST32_MAX__=4294967295U
  define: __UINT_LEAST32_TYPE__=unsigned int
  define: __UINT_LEAST64_FMTX__="lX"
  define: __UINT_LEAST64_FMTo__="lo"
  define: __UINT_LEAST64_FMTu__="lu"
  define: __UINT_LEAST64_FMTx__="lx"
  define: __UINT_LEAST64_MAX__=18446744073709551615UL
  define: __UINT_LEAST64_TYPE__=long unsigned int
  define: __UINT_LEAST8_FMTX__="hhX"
  define: __UINT_LEAST8_FMTo__="hho"
  define: __UINT_LEAST8_FMTu__="hhu"
  define: __UINT_LEAST8_FMTx__="hhx"
  define: __UINT_LEAST8_MAX__=255
  define: __UINT_LEAST8_TYPE__=unsigned char
  define: __USER_LABEL_PREFIX__=
  define: __VERSION__="Clang 17.0.0 (https://github.com/llvm/llvm-project a031f72187ce495b9faa4ccf99b1e901a3872f4b)"
  define: __WCHAR_MAX__=4294967295U
  define: __WCHAR_TYPE__=unsigned int
  define: __WCHAR_UNSIGNED__=1
  define: __WCHAR_WIDTH__=32
  define: __WINT_MAX__=2147483647
  define: __WINT_TYPE__=int
  define: __WINT_WIDTH__=32
  define: __aarch64__=1
  define: __clang__=1
  define: __clang_literal_encoding__="UTF-8"
  define: __clang_major__=17
  define: __clang_minor__=0
  define: __clang_patchlevel__=0
  define: __clang_version__="17.0.0 (https://github.com/llvm/llvm-project a031f72187ce495b9faa4ccf99b1e901a3872f4b)"
  define: __clang_wide_literal_encoding__="UTF-32"
  define: __cplusplus=201703L
  define: __llvm__=1
  define: __private_extern__=extern
  other: --clang
  other: --clang_version=170000
  stdver: c++17
  intelliSenseMode: macos-clang-arm64
Checking for syntax errors: /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp
Queueing IntelliSense update for files in translation unit of: /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp
LSP: cpptools/getFoldingRanges: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp (id: 10)
LSP: cpptools/getCodeActions: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp (id: 11)
Error squiggle count: 9
Error squiggles will be disabled in: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp
Update IntelliSense time (sec): 0.34
LSP: cpptools/getCodeActions: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp (id: 12)
LSP: cpptools/getFoldingRanges: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp (id: 13)
LSP: cpptools/resumeCodeAnalysis
LSP: cpptools/activeDocumentChange: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp
LSP: cpptools/textEditorSelectionChange
LSP: cpptools/getCodeActions: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp (id: 14)
LSP: cpptools/getFoldingRanges: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp (id: 15)
LSP: cpptools/activeDocumentChange: file:///Volumes/Macintosh%20HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp
LSP: cpptools/textEditorSelectionChange

-------- Diagnostics - 02/10/2023, 14:03:03
Version: 1.17.5
Current Configuration:
{
    "name": "Mac",
    "compilerPath": "/Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/em++",
    "cStandard": "c17",
    "cppStandard": "c++17",
    "intelliSenseMode": "linux-clang-x64",
    "configurationProvider": "ms-vscode.cmake-tools",
    "compileCommands": "/Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/Build/compile_commands.json",
    "compilerPathIsExplicit": true,
    "cStandardIsExplicit": true,
    "cppStandardIsExplicit": true,
    "intelliSenseModeIsExplicit": true,
    "compilerPathInCppPropertiesJson": "${env:EMSDK}/upstream/emscripten/em++",
    "compileCommandsInCppPropertiesJson": "Build/compile_commands.json",
    "configurationProviderInCppPropertiesJson": "ms-vscode.cmake-tools",
    "mergeConfigurations": false,
    "browse": {
        "path": [
            "${workspaceFolder}"
        ],
        "limitSymbolsToIncludedHeaders": true
    }
}
Custom browse configuration: 
{
    "browsePath": [
        "/volumes/macintosh hd/users/bimxm1/sandbox/arm_mac_includes"
    ],
    "compilerPath": "/volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++",
    "compilerArgs": [],
    "compilerFragments": [
        "-g",
        "-std=c++17",
        "-pthread",
        "-Wall"
    ]
}
Custom configurations:
[ /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp ]
{
    "includePath": [],
    "defines": [],
    "compilerPath": "/volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++",
    "compilerArgs": [],
    "compilerFragments": [
        "-g",
        "-std=c++17",
        "-pthread",
        "-Wall"
    ]
}
cpptools version (native): 1.17.5.0
Translation Unit Mappings:
[ /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp ]:
    /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp
Translation Unit Configurations:
[ /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes/main.cpp ]:
    Process ID: 73442
    Memory Usage: 12 MB
    Compiler Path: /volumes/data/users/bimxm1/git/emsdk/upstream/emscripten/em++
    Includes:
        /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/cache/sysroot/include/fakesdl
        /Volumes/Data/Users/bimxm1/git/emsdk/upstream/emscripten/cache/sysroot/include/compat
        /Volumes/Data/Users/bimxm1/git/emsdk/upstream/lib/clang/17/include
    Standard Version: c++17
    IntelliSense Mode: macos-clang-arm64
    Other Flags:
        --clang
        --clang_version=170000
Total Memory Usage: 12 MB
Browse Paths from compile_commands.json, from workspace folder: /Volumes/Macintosh HD/Users/bimxm1/Sandbox/arm_mac_includes
    /volumes/macintosh hd/users/bimxm1/sandbox/arm_mac_includes

------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 284
Number of files parsed: 1

Other Extensions

CMake Tools

I've found that if I comment out the "configuration provider: cmake tools" line, the error goes away. So I'm not sure if this is a bug in Cpptools or in CMake Tools.

Additional context

The error only manifests on an Apple Silicon based Mac. It works fine on an Intel Mac.

I dug into where Intellisense is getting system include paths from. In the logs I found the following difference. On the Intel Mac, this command line is invoked:

Compiler query command line: /volumes/ssd/git/emsdk/upstream/emscripten/em++ -g -std=c++17 -pthread -Wall -m64 -Wp,-v -fno-blocks -E -dM -x c++ /dev/null

When invoked in a terminal, the output starts with

clang -cc1 version 17.0.0 based upon LLVM 17.0.0git default target x86_64-apple-darwin22.6.0
ignoring nonexistent directory "/Volumes/SSD/git/emsdk/upstream/emscripten/cache/sysroot/include/wasm64-emscripten/c++/v1"
ignoring nonexistent directory "/Volumes/SSD/git/emsdk/upstream/emscripten/cache/sysroot/include/wasm64-emscripten"
#include "..." search starts here:
#include <...> search starts here:
 /Volumes/SSD/git/emsdk/upstream/emscripten/cache/sysroot/include/fakesdl
 /Volumes/SSD/git/emsdk/upstream/emscripten/cache/sysroot/include/compat
 /Volumes/SSD/git/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1
 /Volumes/SSD/git/emsdk/upstream/lib/clang/17/include
 /Volumes/SSD/git/emsdk/upstream/emscripten/cache/sysroot/include
End of search list.

On the Apple Silicon Mac, the command line becomes

/Volumes/SSD/git/emsdk/upstream/emscripten/em++ -std=c++17 --target=aarch64-arm-none-eabi -m64 -Wp,-v -fno-block s -E -dM -x c++ /dev/null
clang -cc1 version 17.0.0 based upon LLVM 17.0.0git default target x86_64-apple-darwin22.6.0
ignoring nonexistent directory "/Volumes/SSD/git/emsdk/upstream/emscripten/cache/sysroot/usr/local/include"
ignoring nonexistent directory "/Volumes/SSD/git/emsdk/upstream/emscripten/cache/sysroot/usr/include"
#include "..." search starts here:
#include <...> search starts here:
 /Volumes/SSD/git/emsdk/upstream/emscripten/cache/sysroot/include/fakesdl
 /Volumes/SSD/git/emsdk/upstream/emscripten/cache/sysroot/include/compat
 /Volumes/SSD/git/emsdk/upstream/lib/clang/17/include
End of search list.

So on the ARM Mac, Cpptools specifies a --target=aarch64-arm-none-eabi compiler option, even though this is supposed to be a cross-compilation workflow.

Colengms commented 1 year ago

Hi, @mmarczell-graphisoft . Currently, this would seem to be the intended behavior. The compiler identifies itself as clang, with the wasm32-unknown-emscripten target type. Unfortunately, that target type is not recognized (not currently a target the C/C++ Extension can configure IntelliSense to support). So, in an effort to auto-configure the extension to use that compiler, it's falling back to the host as the target, which it can successfully configure the compiler to use.

We are working on some improvements to the 'compiler query' implementation, which should eventually address this. In the meanwhile, it may be possible to work around the issue by providing --target=wasm32-unknown-emscripten as a compilerArg. Since you're using CMake Tools, that may require use of add_compile_options. This may continue to use some incorrect IntelliSense settings, such as for sizes of some predefined types. But, it should cause the compiler to be queried using the wasm32-unknown-emscripten target type, which should correctly resolve system includes and system defines for that target type.

github-actions[bot] commented 11 months ago

This issue has been closed because it needs more information and has not had recent activity.