microsoft / microsoft/vscode-cpptools
typeof incorrectly removes qualifiers in some situations (with C clang/gcc modes)
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- TypeScript
- Estrellas
- 6.2k
- Forks
- 1.7k
- Merge medio
- 14 h 46 min
- PR fusionados (30 d)
- 61
Descripción
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.:
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Primero reproduce el resultado del hover con el ejemplo de C23 typeof proporcionado en la configuración de Windows GCC indicada y, después, sigue la información de tipo de IntelliSense para un puntero desreferenciado a un tipo cualificado o atómico. Se considera terminado cuando el tipo indicado conserva el cualificador const o atomic, también para la reproducción proporcionada.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- c
- Área
- compilers, devtools
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100