microsoft / microsoft/vscode-cpptools
typeof incorrectly removes qualifiers in some situations (with C clang/gcc modes)
Dieses Issue hat noch niemand übernommen.
- 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 10
- VS Code Version: 1.100.2
- C/C++ Extension Version: 1.25.3
Bug Summary and Steps to Reproduce
Bug Summary:
Steps to reproduce:
Use typeof with a qualified or atomic lvalue obtained from dereferencing a pointer to a qualified or atomic type, for example:
typedef typeof(*(const int*)0)x;
When hovering over this definition, it reports x as being the type int.
Expected behavior:
The reported type of x should be const int.
Configuration and Logs
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"cStandard": "c23",
"cppStandard": "c++23",
"intelliSenseMode": "linux-gcc-x64",
"compilerPath": "C:/cygwin64/bin/gcc.exe"
}
],
"version": 4
}
Other Extensions
No response
Additional context
This issue does not occur when using an lvalue derived from a name instead of dereferencing a pointer, e.g.:
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere zunächst das Hover-Ergebnis mit dem bereitgestellten C23 typeof-Beispiel in der gemeldeten Windows-GCC-Konfiguration und verfolge anschließend die IntelliSense-Typinformationen für einen dereferenzierten Zeiger auf einen qualifizierten oder atomaren Typ. Erledigt ist die Aufgabe, wenn der gemeldete Typ den const- oder atomic-Qualifizierer beibehält, auch bei der bereitgestellten Reproduktion.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- c
- Bereich
- compilers, devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100