microsoft / microsoft/vscode-cpptools

Intellisense not handling attributes for ext_vector_type

Aperta
#10,037 2 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Language Service Visual Studio
Lingua principale
TypeScript
Stelle
6.2k
Fork
1.7k
Merge medio
14h 46m
PR unite (30g)
61

Descrizione

Environment
  • OS and version: macos12.6, M1
  • VS Code: Version: 1.72.2 (Universal)
  • C/C++ extension: C/C++ v1.13.2 (Pre-release)

c_cpp_properties.json settings that I've tried
"intelliSenseMode": "macos-gcc-arm64",
and
"intelliSenseMode": "macos-clang-arm64",

Bug Summary and Steps to Reproduce

Bug Summary:
Intellisense reports an error expression must have class type but it has type "vector4"C/C++(153) but it doesn't register as an error during compilation. Xcode does not report this code as problematic either.

Steps to reproduce:
define a vector
typedef float vector4 __attribute__((ext_vector_type(4)));

Refer to a value in the vector using (x, y, z, w) rather than indexing

vector4 V;
V.x = 1.0;

Intellisense returns
expression must have class type but it has type "vector4"C/C++(153)

Expected behavior

I don't think this should be reported as an error in Intellisense.

If the error is correct then is there something obvious that I'm missing in the c_cpp_properties.json?

Code sample and Logs
{
    "configurations": [
        {
            "name": "VectorTest",
            "includePath": [
                "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers/"
            ],
            "defines": [],
            "macFrameworkPath": [
                "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks",
                "/System/Library/Frameworks",
                "/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/clang",
            "cStandard": "c89",
            "cppStandard": "c++14",
            "intelliSenseMode": "macos-clang-arm64",
            "browse": {
                "limitSymbolsToIncludedHeaders": true
            }
        }
    ],
    "version": 4
}



### Screenshots

_No response_

### Additional context

_No response_

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia riproducendo la diagnostica con l’esempio ext_vector_type e il file c_cpp_properties.json fornito usando macos-clang-arm64. Confronta il risultato di IntelliSense con la compilazione clang e Xcode, quindi traccia il modo in cui l’estensione gestisce gli attributi dei vettori; il lavoro è completo quando l’accesso valido ai membri non segnala più C/C++(153), con un test di regressione che copra l’esempio.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
c, cpp, vscode
Ambito
devtools
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.