microsoft / microsoft/vscode-cpptools

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

Open
#9,765 12 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature Request Feature: Configuration Feature: IntelliSense Mode Language Service Visual Studio
Dominant language
TypeScript
Stars
6.2k
Forks
1.7k
Avg merge
14h 46m
Merged PRs (30d)
61

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue with the PlatformIO NodeMCUv2 project, using src/main.cpp and the generated c_cpp_properties.json shown in the report. Start by comparing IntelliSense's static_assert results for 4-byte and 8-byte pointers with xtensa-lx106-elf-gcc.exe; done means the 4-byte pointer assertions no longer produce Problems errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, vscode
Domain
developer-experience, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.