From 0ca9791577043f7c15c2d8feaa40c774a5c94441 Mon Sep 17 00:00:00 2001
From: Jon Evans <jon@craftyjon.com>
Date: Tue, 11 Feb 2025 20:26:51 -0500
Subject: [PATCH] Fix some GCC build warnings

---
 cmake/Warnings.cmake              | 1 +
 common/api/api_plugin_manager.cpp | 2 +-
 eeschema/lib_symbol.cpp           | 7 +++----
 kicad/kicad_manager_frame.cpp     | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/cmake/Warnings.cmake b/cmake/Warnings.cmake
index 579b1f4347..35ab33084e 100644
--- a/cmake/Warnings.cmake
+++ b/cmake/Warnings.cmake
@@ -195,6 +195,7 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
     # Suppress GCC warnings about unknown/unused attributes (e.g. cdecl, [[maybe_unused, etc)
     if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
         set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes" )
+        set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-ignored-attributes" )
     endif()
 
     # Avoid ABI warnings, specifically one about an ABI change on ppc64el from gcc5 to gcc 6.
diff --git a/common/api/api_plugin_manager.cpp b/common/api/api_plugin_manager.cpp
index 80301794b6..2b3d3fdf43 100644
--- a/common/api/api_plugin_manager.cpp
+++ b/common/api/api_plugin_manager.cpp
@@ -284,7 +284,7 @@ void API_PLUGIN_MANAGER::InvokeAction( const wxString& aIdentifier )
         if( pythonHome )
             env.env[wxS( "VIRTUAL_ENV" )] = *pythonHome;
 
-        long pid = manager.Execute( { pluginFile.GetFullPath() },
+        [[maybe_unused]] long pid = manager.Execute( { pluginFile.GetFullPath() },
                 []( int aRetVal, const wxString& aOutput, const wxString& aError )
                 {
                     wxLogTrace( traceApi,
diff --git a/eeschema/lib_symbol.cpp b/eeschema/lib_symbol.cpp
index 16580ffc85..abbd106bf3 100644
--- a/eeschema/lib_symbol.cpp
+++ b/eeschema/lib_symbol.cpp
@@ -1948,10 +1948,9 @@ const EMBEDDED_FILES* LIB_SYMBOL::GetEmbeddedFiles() const
 
 std::set<KIFONT::OUTLINE_FONT*> LIB_SYMBOL::GetFonts() const
 {
-    using OUTLINE_FONT = KIFONT::OUTLINE_FONT;
-    using EMBEDDING_PERMISSION = OUTLINE_FONT::EMBEDDING_PERMISSION;
+    using EMBEDDING_PERMISSION = KIFONT::OUTLINE_FONT::EMBEDDING_PERMISSION;
 
-    std::set<OUTLINE_FONT*> fonts;
+    std::set<KIFONT::OUTLINE_FONT*> fonts;
 
     for( const SCH_ITEM& item : m_drawings )
     {
@@ -1961,7 +1960,7 @@ std::set<KIFONT::OUTLINE_FONT*> LIB_SYMBOL::GetFonts() const
 
             if( auto* font = text.GetFont(); font && !font->IsStroke() )
             {
-                auto* outline = static_cast<OUTLINE_FONT*>( font );
+                auto* outline = static_cast<KIFONT::OUTLINE_FONT*>( font );
                 auto permission = outline->GetEmbeddingPermission();
 
                 if( permission == EMBEDDING_PERMISSION::EDITABLE
diff --git a/kicad/kicad_manager_frame.cpp b/kicad/kicad_manager_frame.cpp
index 66de62f42b..c5b24309d7 100644
--- a/kicad/kicad_manager_frame.cpp
+++ b/kicad/kicad_manager_frame.cpp
@@ -663,7 +663,7 @@ void KICAD_MANAGER_FRAME::doCloseWindow()
     {
         wxWindow* page = m_notebook->GetPage( i );
 
-        if( PANEL_NOTEBOOK_BASE* panel = dynamic_cast<PANEL_NOTEBOOK_BASE*>( page ) )
+        if( dynamic_cast<PANEL_NOTEBOOK_BASE*>( page ) )
             m_notebook->DeletePage( i );
     }