microsoft / microsoft/vscode-cpptools

IntelliSense does not support some data type sizes for compiler xtensa-lx106-elf-gcc.exe

Đang mở
#9,765 12 bình luận 4 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Feature Request Feature: Configuration Feature: IntelliSense Mode Language Service Visual Studio
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

Mô tả

Environment
  • OS and Version: Win 10 x64
  • VS Code Version: 1.70.2
  • C/C++ Extension Version: 1.12.1 (pre-release)
  • Other extensions you installed (and if the issue persists after disabling them): PlatformIO 2.5.2
  • If using SSH remote, specify OS of remote machine: n/a
  • A clear and concise description of what the bug is, including information about the workspace (i.e. is the workspace a single project or multiple projects, size of the project, etc).

When using PlatformIO to create a ESP8266 project (which has a 32-bit XTensa processor), Intellisense falsely triggers on static_assert checks that check that the size of a pointer is 4 bytes. Intellisense thinks its 8 bytes, when it is in reality 4 bytes.

Bug Summary and Steps to Reproduce

Bug Summary: Intellense does not know about the used pointer sizes, although it is correctly pointed at the device-specific compiler.

Steps to reproduce:

  1. Install the PlatformIO extension
  2. Create a new project for the NodeMCUv2 with framework = Arduino
  3. Use the following code as src/main.cpp
#include <Arduino.h>

void setup() {
    static_assert(sizeof(void*) == 4ul);
    static_assert(sizeof(int*) == 4ul);
    static_assert(sizeof(const char*) == 4ul);
}

void loop() { }
  1. Obseve the "Error with the static assertion" message in the "Problems" view.
  2. Obvserve that when checking static_assert(sizeof(void*) == 8ul);, the error goes away.
Expected behavior

Intellisense uses the correct pointer sizes, no problems detected.

Code sample and Logs

Code sample see: above

c_cpp_properties.json:

//
// !!! WARNING !!! AUTO-GENERATED FILE!
// PLEASE DO NOT MODIFY IT AND USE "platformio.ini":
// https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags
//
{
    "configurations": [
        {
            "name": "PlatformIO",
            "includePath": [
                "c:/Users/Max/temp/ptr_size/include",
                "c:/Users/Max/temp/ptr_size/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/tools/sdk/include",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/cores/esp8266",
                "C:/Users/Max/.platformio/packages/toolchain-xtensa@2.100300.210717/include",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/tools/sdk/lwip2/include",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/variants/nodemcu",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ArduinoOTA",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/DNSServer/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/EEPROM",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266AVRISP/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPUpdateServer/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266LLMNR",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266NetBIOS",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266SSDP",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266SdFat/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WebServer/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFiMesh/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266httpUpdate/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266mDNS/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Ethernet/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/GDBStub/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Hash/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/I2S/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/LittleFS/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Netdump/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SD/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SDFS/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SPI",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SPISlave/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Servo/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SoftwareSerial/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/TFT_Touch_Shield_V2",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Ticker/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Wire",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/esp8266/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_PPP/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_enc28j60/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_w5100/src",
                "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_w5500/src",
                ""
            ],
            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "path": [
                    "c:/Users/Max/temp/ptr_size/include",
                    "c:/Users/Max/temp/ptr_size/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/tools/sdk/include",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/cores/esp8266",
                    "C:/Users/Max/.platformio/packages/toolchain-xtensa@2.100300.210717/include",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/tools/sdk/lwip2/include",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/variants/nodemcu",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ArduinoOTA",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/DNSServer/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/EEPROM",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266AVRISP/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPUpdateServer/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266LLMNR",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266NetBIOS",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266SSDP",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266SdFat/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WebServer/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFiMesh/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266httpUpdate/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266mDNS/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Ethernet/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/GDBStub/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Hash/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/I2S/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/LittleFS/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Netdump/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SD/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SDFS/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SPI",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SPISlave/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Servo/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SoftwareSerial/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/TFT_Touch_Shield_V2",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Ticker/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Wire",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/esp8266/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_PPP/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_enc28j60/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_w5100/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_w5500/src",
                    ""
                ]
            },
            "defines": [
                "PLATFORMIO=60105",
                "ESP8266",
                "ARDUINO_ARCH_ESP8266",
                "ARDUINO_ESP8266_NODEMCU_ESP12E",
                "F_CPU=80000000L",
                "__ets__",
                "ICACHE_FLASH",
                "ARDUINO=10805",
                "ARDUINO_BOARD=\"PLATFORMIO_NODEMCUV2\"",
                "FLASHMODE_DIO",
                "LWIP_OPEN_SRC",
                "NONOSDK22x_190703=1",
                "TCP_MSS=536",
                "LWIP_FEATURES=1",
                "LWIP_IPV6=0",
                "VTABLES_IN_FLASH",
                "MMU_IRAM_SIZE=0x8000",
                "MMU_ICACHE_SIZE=0x8000",
                ""
            ],
            "cStandard": "c17",
            "cppStandard": "c++17",
            "compilerPath": "C:/Users/Max/.platformio/packages/toolchain-xtensa@2.100300.210717/bin/xtensa-lx106-elf-gcc.exe",
            "compilerArgs": [
                "-mlongcalls",
                "-mtext-section-literals",
                ""
            ]
        }
    ],
    "version": 4
}

Logs from C/C++ Log Diagnostics

-------- Diagnostics - 20.8.2022, 23:03:44
Version: 1.12.1
Current Configuration:
{
    "name": "PlatformIO",
    "includePath": [
        "c:/Users/Max/temp/ptr_size/include",
        "c:/Users/Max/temp/ptr_size/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/tools/sdk/include",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/cores/esp8266",
        "C:/Users/Max/.platformio/packages/toolchain-xtensa@2.100300.210717/include",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/tools/sdk/lwip2/include",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/variants/nodemcu",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ArduinoOTA",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/DNSServer/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/EEPROM",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266AVRISP/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPUpdateServer/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266LLMNR",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266NetBIOS",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266SSDP",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266SdFat/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WebServer/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFiMesh/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266httpUpdate/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266mDNS/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Ethernet/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/GDBStub/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Hash/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/I2S/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/LittleFS/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Netdump/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SD/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SDFS/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SPI",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SPISlave/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Servo/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SoftwareSerial/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/TFT_Touch_Shield_V2",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Ticker/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Wire",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/esp8266/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_PPP/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_enc28j60/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_w5100/src",
        "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_w5500/src"
    ],
    "browse": {
        "limitSymbolsToIncludedHeaders": true,
        "path": [
            "c:/Users/Max/temp/ptr_size/include",
            "c:/Users/Max/temp/ptr_size/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/tools/sdk/include",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/cores/esp8266",
            "C:/Users/Max/.platformio/packages/toolchain-xtensa@2.100300.210717/include",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/tools/sdk/lwip2/include",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/variants/nodemcu",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ArduinoOTA",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/DNSServer/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/EEPROM",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266AVRISP/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPUpdateServer/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266LLMNR",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266NetBIOS",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266SSDP",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266SdFat/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WebServer/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFiMesh/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266httpUpdate/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266mDNS/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Ethernet/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/GDBStub/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Hash/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/I2S/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/LittleFS/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Netdump/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SD/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SDFS/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SPI",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SPISlave/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Servo/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/SoftwareSerial/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/TFT_Touch_Shield_V2",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Ticker/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/Wire",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/esp8266/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_PPP/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_enc28j60/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_w5100/src",
            "C:/Users/Max/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_w5500/src"
        ]
    },
    "defines": [
        "PLATFORMIO=60105",
        "ESP8266",
        "ARDUINO_ARCH_ESP8266",
        "ARDUINO_ESP8266_NODEMCU_ESP12E",
        "F_CPU=80000000L",
        "__ets__",
        "ICACHE_FLASH",
        "ARDUINO=10805",
        "ARDUINO_BOARD=\"PLATFORMIO_NODEMCUV2\"",
        "FLASHMODE_DIO",
        "LWIP_OPEN_SRC",
        "NONOSDK22x_190703=1",
        "TCP_MSS=536",
        "LWIP_FEATURES=1",
        "LWIP_IPV6=0",
        "VTABLES_IN_FLASH",
        "MMU_IRAM_SIZE=0x8000",
        "MMU_ICACHE_SIZE=0x8000",
        ""
    ],
    "cStandard": "c17",
    "cppStandard": "c++17",
    "compilerPath": "C:/Users/Max/.platformio/packages/toolchain-xtensa@2.100300.210717/bin/xtensa-lx106-elf-gcc.exe",
    "compilerArgs": [
        "-mlongcalls",
        "-mtext-section-literals",
        ""
    ],
    "compilerPathIsExplicit": true,
    "cStandardIsExplicit": true,
    "cppStandardIsExplicit": true,
    "intelliSenseModeIsExplicit": false,
    "mergeConfigurations": false
}

C/C++ logs:

Translation Unit Mappings:
[ C:\Users\Max\temp\ptr_size\src\main.cpp ]:
    C:\Users\Max\temp\ptr_size\src\main.cpp
Translation Unit Configurations:
[ C:\Users\Max\temp\ptr_size\src\main.cpp ]:
    Process ID: 26136
    Memory Usage: 111 MB
    Compiler Path: C:/Users/Max/.platformio/packages/toolchain-xtensa@2.100300.210717/bin/xtensa-lx106-elf-gcc.exe
    Includes:
        C:\USERS\MAX\TEMP\PTR_SIZE\INCLUDE
        C:\USERS\MAX\TEMP\PTR_SIZE\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\TOOLS\SDK\INCLUDE
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\CORES\ESP8266
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\TOOLCHAIN-XTENSA@2.100300.210717\INCLUDE
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\TOOLS\SDK\LWIP2\INCLUDE
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\VARIANTS\NODEMCU
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ARDUINOOTA
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\DNSSERVER\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\EEPROM
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266AVRISP\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266HTTPCLIENT\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266HTTPUPDATESERVER\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266LLMNR
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266NETBIOS
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266SSDP
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266SDFAT\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266WEBSERVER\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266WIFI\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266WIFIMESH\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266HTTPUPDATE\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266MDNS\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ETHERNET\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\GDBSTUB\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\HASH\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\I2S\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\LITTLEFS\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\NETDUMP\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\SD\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\SDFS\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\SPI
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\SPISLAVE\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\SERVO\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\SOFTWARESERIAL\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\TFT_TOUCH_SHIELD_V2
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\TICKER\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\WIRE
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\ESP8266\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\LWIP_PPP\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\LWIP_ENC28J60\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\LWIP_W5100\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINOESPRESSIF8266\LIBRARIES\LWIP_W5500\SRC
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\TOOLCHAIN-XTENSA@2.100300.210717\XTENSA-LX106-ELF\INCLUDE\C++\10.3.0
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\TOOLCHAIN-XTENSA@2.100300.210717\XTENSA-LX106-ELF\INCLUDE\C++\10.3.0\XTENSA-LX106-ELF
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\TOOLCHAIN-XTENSA@2.100300.210717\XTENSA-LX106-ELF\INCLUDE\C++\10.3.0\BACKWARD
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\TOOLCHAIN-XTENSA@2.100300.210717\LIB\GCC\XTENSA-LX106-ELF\10.3.0\INCLUDE
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\TOOLCHAIN-XTENSA@2.100300.210717\LIB\GCC\XTENSA-LX106-ELF\10.3.0\INCLUDE-FIXED
        C:\USERS\MAX\.PLATFORMIO\PACKAGES\TOOLCHAIN-XTENSA@2.100300.210717\XTENSA-LX106-ELF\INCLUDE
    Defines:
        PLATFORMIO=60105
        ESP8266
        ARDUINO_ARCH_ESP8266
        ARDUINO_ESP8266_NODEMCU_ESP12E
        F_CPU=80000000L
        __ets__
        ICACHE_FLASH
        ARDUINO=10805
        ARDUINO_BOARD="PLATFORMIO_NODEMCUV2"
        FLASHMODE_DIO
        LWIP_OPEN_SRC
        NONOSDK22x_190703=1
        TCP_MSS=536
        LWIP_FEATURES=1
        LWIP_IPV6=0
        VTABLES_IN_FLASH
        MMU_IRAM_SIZE=0x8000
        MMU_ICACHE_SIZE=0x8000
        
    Standard Version: c++17
    IntelliSense Mode: windows-gcc-x64
    Other Flags:
        --g++
        --gnu_version=100300
Total Memory Usage: 111 MB
------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 1643
Number of files parsed: 989

Logs from language server logging:

loggingLevel: Debug
loggingLevel wurde geändert in Debug
cpptools/didChangeCppProperties
cpptools/getCodeActions: C:\Users\Max\temp\ptr_size\src\main.cpp (id: 185)
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
cpptools/activeDocumentChange: C:\Users\Max\temp\ptr_size\src\main.cpp
cpptools/getFoldingRanges: C:\Users\Max\temp\ptr_size\src\main.cpp (id: 186)
cpptools/getCodeActions: C:\Users\Max\temp\ptr_size\src\main.cpp (id: 187)
cpptools/textEditorSelectionChange
cpptools/getCodeActions: C:\Users\Max\temp\ptr_size\src\main.cpp (id: 188)
cpptools/getCodeActions: C:\Users\Max\temp\ptr_size\src\main.cpp (id: 189)
cpptools/textEditorSelectionChange
cpptools/textEditorSelectionChange
cpptools/activeDocumentChange: C:\Users\Max\temp\ptr_size\src\main.cpp
cpptools/getFoldingRanges: C:\Users\Max\temp\ptr_size\src\main.cpp (id: 190)
cpptools/getCodeActions: C:\Users\Max\temp\ptr_size\src\main.cpp (id: 191)
cpptools/textEditorSelectionChange
textDocument/documentHighlight: C:\Users\Max\temp\ptr_size\src\main.cpp (id: 192)
cpptools/getCodeActions: C:\Users\Max\temp\ptr_size\src\main.cpp (id: 193)
cpptools/textEditorSelectionChange
cpptools/getCodeActions: C:\Users\Max\temp\ptr_size\src\main.cpp (id: 194)
cpptools/getDiagnostics (id: 195)
cpptools/textEditorSelectionChange
cpptools/getCodeActions: C:\Users\Max\temp\ptr_size\src\main.cpp (id: 196)
cpptools/activeDocumentChange: C:\Users\Max\temp\ptr_size\src\main.cpp
cpptools/textEditorSelectionChange
cpptools/activeDocumentChange: C:\Users\Max\temp\ptr_size\src\main.cpp
Screenshots

Intellisense wants me to convince that sizeof(void*) == 4 is wrong when using xtensa-lx106-elf-gcc.

grafik

Asking the firmware to output that value gives the expected value: 4 bytes, of course.

grafik

Additional context

The line

    IntelliSense Mode: windows-gcc-x64

seems highly suspicious. Just because I'm using Windows 10 x64 with a GCC compiler it thinks the target I'm building for is also 64-bits? My target machine could be anything, like in this case a 32-bit XTensa processor -- and VSCode should know about it because it is given the compiler path with all needed configuration switches.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Tái hiện vấn đề với dự án PlatformIO NodeMCUv2, sử dụng src/main.cpp và c_cpp_properties.json được tạo như trong báo cáo. Bắt đầu bằng cách so sánh kết quả static_assert của IntelliSense đối với các con trỏ 4 byte và 8 byte với xtensa-lx106-elf-gcc.exe; hoàn tất khi các assertion đối với con trỏ 4 byte không còn tạo ra lỗi Problems.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
cpp, vscode
Lĩnh vực
developer-experience, tooling
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
45/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.