Description
Type: LanguageService
Describe the bug
- OS and Version: Fedora 31
- VS Code Version: 1.41
- C/C++ Extension Version: 0.26.3
- Other extensions you installed (and if the issue persists after disabling them): TBD (how can I disable every extension except for this one? I have 50 extensions installed.)
- A clear and concise description of what the bug is.
There is an identifier exported from GLib, G_PARAM_STATIC_STRINGS
(a macro), that is marked as undefined (has red squiggles) even though I can Ctrl+click it to show the definition. Seeing the definition shows no errors. The file that the macro is defined also reports an unusual error though, where an ending }
is expected. Not sure if this is throwing off the language server, but something is off.
To Reproduce
repository in question: https://git.sr.ht/~tristan957/harvest-almanac (also mirrored on my GitHub if more convenient)
example of usage: https://git.sr.ht/~tristan957/harvest-almanac/tree/d5ebeb13fb59b3c99e3c43c290b7b7e7aed51020/harvest-glib/harvest-project.c#L334
c_cpp_properties.json
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/harvest-glib",
"/usr/include/gtk-3.0",
"/usr/include/glib-2.0",
"/usr/lib64/glib-2.0/include",
"/usr/include/pango-1.0",
"/usr/include/cairo",
"/usr/include/gdk-pixbuf-2.0",
"/usr/include/atk-1.0",
"/usr/include/libhandy-0.0",
"/usr/include/json-glib-1.0",
"/usr/include/libsoup-2.4",
"/usr/include/libsecret-1",
"/usr/include/harfbuzz",
"/home/tristan957/.local/include",
"${workspaceFolder}/build/harvest-glib"
],
"defines": [
"__HARVEST_HEADER_INTERNAL__"
],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64",
"compileCommands": "${workspaceFolder}/build/compile_commands.json"
}
],
"version": 4
}
- Open the repo in VSCode
- Go to
harvest-glib/harvest-project.c
line 334, see error on line 335 (any .c file should show the same error fyi) - Notice squiggles
- Ctrl+click (now viewing gparam.h) (https://gitlab.gnome.org/GNOME/glib/blob/master/gobject/gparam.h#L175)
- Notice error on line 159 of file (https://gitlab.gnome.org/GNOME/glib/blob/master/gobject/gparam.h#L159)
- Follow the definition of
GLIB_DEPRECATED_ENUMERATOR_IN_2_26
to gversionmacros.h and then to gmacros.h - See that
GLIB_DEPRECATED_ENUMERATOR_IN_2_26
eventually gets defined as__attribute__((__deprecated__))
Expected behavior
Not misreport a defined identifier.