git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2] packfile: ensure that enum object_type is defined

From
Beat Bolli <dev+git@drbeat.li>
Date
Jul 25, 2018, 21:56 UTC
Message-ID
<20180725215607.19910-2-dev+git@drbeat.li>
In-Reply-To
<20180725215607.19910-1-dev+git@drbeat.li>

When compiling under Apple LLVM version 9.1.0 (clang-902.0.39.2) with "make DEVELOPER=1 DEVOPTS=pedantic", the compiler says

    error: redeclaration of already-defined enum 'object_type' is a GNU
    extension [-Werror,-Wgnu-redeclared-enum]

According to https://en.cppreference.com/w/c/language/declarations (section "Redeclaration"), a repeated declaration after the definition is only legal for structs and unions, but not for enums.

Drop the belated declaration of enum object_type and include cache.h instead to make sure the enum is defined.

Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Beat Bolli <dev+git@drbeat.li>
---
 packfile.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packfile.h b/packfile.h
index 51383774ec72..28318c5c7c42 100644
--- a/packfile.h
+++ b/packfile.h
@@ -1,12 +1,12 @@
 #ifndef PACKFILE_H
 #define PACKFILE_H
 
+#include "cache.h"
 #include "oidset.h"
 
 /* in object-store.h */
 struct packed_git;
 struct object_info;
-enum object_type;
 
 /*
  * Generate the filename to be used for a pack file with checksum "sha1" and
-- 
2.18.0
Previous: Beat BolliNext: Jonathan Nieder
Message 2 of 3 in “Pedantic fix for Apple clang”
  1. 0/1 Pedantic fix for Apple clangBeat Bolli, Jul 25, 2018
  2. packfile: ensure that enum object_type is definedBeat Bolli, Jul 25, 2018
  3. Jonathan NiederJul 26, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.