microsoft / microsoft/vscode-cpptools

Intellisense on Linux with clang++ and -fms-extensions defines _WIN32

Offen
#10,396 6 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug Language Service Visual Studio
Vorherrschende Sprache
TypeScript
Sterne
6.2k
Forks
1.7k
Ø Merge
14 Std. 46 Min.
Gemergte PRs (30 T.)
61

Beschreibung

Environment
  • OS and Version: Windows 11 22000.1455
  • VS Code Version: 1.74.3
  • C/C++ Extension Version: v1.14.0
  • If using SSH remote, specify OS of remote machine: Debian 11
Bug Summary and Steps to Reproduce

Bug Summary:

Intellisense on Linux with clang++ and -fms-extensions defines _WIN32 that lead to incorrect output.

Steps to reproduce:

  1. Create simple CMake C++ project on wsl (or clear Debian 11)
  2. Set compiler clang++-15
  3. Add compiler flag -fms-extensions with target_compile_options
  4. Intellisense defines _WIN32

Expected behavior:

No _WIN32 on linux

Configuration and Logs
{
  "configurations": [
    {
      "name": "Linux",
      "includePath": [
        "${workspaceFolder}/**"
      ],
      "defines": [],
      "compilerPath": "/usr/bin/clang++-15",
      "cStandard": "c17",
      "cppStandard": "c++20",
      "intelliSenseMode": "linux-clang-x64",
      "configurationProvider": "ms-vscode.cmake-tools"
    }
  ],
  "version": 4
}
Other Extensions

CMake Tools v1.12.27
CMake v0.0.17

Additional context

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere das Problem im gemeldeten CMake-Projekt auf Debian oder WSL mit clang++-15, -fms-extensions und der gezeigten IntelliSense-Konfiguration. Vergleiche die vom Compiler definierten Makros mit den Ergebnissen von IntelliSense; abgeschlossen ist die Aufgabe, wenn _WIN32 für diese Linux-Konfiguration nicht definiert ist, während das Flag aktiviert bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cmake, cpp, linux
Bereich
operating-systems, tooling
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.