Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • G GLib
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 854
    • Issues 854
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 55
    • Merge requests 55
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOMEGNOME
  • GLib
  • Merge requests
  • !2003

Draft: gmacros: Fix G_GNUC_* attributes on clang-cl

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Aleksandr Mezin requested to merge amezin/glib:clang-cl-attributes into master Mar 19, 2021
  • Overview 9
  • Commits 1
  • Pipelines 1
  • Changes 1

Currently when GLib is being compiled with clang-cl, clang-cl emits a lot of warnings about unused functions and variables:

[583/750] Compiling C object gio/tests/modules/testmoduleb.dll.p/test-module-b.c.obj
../gio/tests/modules/test-module-b.c(39,1): warning: unused function 'test_b_get_instance_private' [-Wunused-function]
G_DEFINE_TYPE (TestB, test_b, G_TYPE_OBJECT)
^
..\gobject/gtype.h(1603,43): note: expanded from macro 'G_DEFINE_TYPE'
#define G_DEFINE_TYPE(TN, t_n, T_P)                         G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
                                                            ^
..\gobject/gtype.h(1762,60): note: expanded from macro 'G_DEFINE_TYPE_EXTENDED'
#define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)      _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
                                                            ^
..\gobject/gtype.h(2034,3): note: expanded from macro '_G_DEFINE_TYPE_EXTENDED_BEGIN'
  _G_DEFINE_TYPE_EXTENDED_BEGIN_PRE(TypeName, type_name, TYPE_PARENT) \
  ^
..\gobject/gtype.h(1989,24): note: expanded from macro '_G_DEFINE_TYPE_EXTENDED_BEGIN_PRE'
static inline gpointer \
                       ^
<scratch space>(104,1): note: expanded from here
test_b_get_instance_private
^
1 warning generated.

This change removes all "unused" warnings, and GLib still compiles in both c_std=gnu99 (with G_STATIC_ASSERT fix) and c_std=gnu11 mode.

Edited Mar 19, 2021 by Aleksandr Mezin
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: clang-cl-attributes