6

I've been developing my application using GCC 4.6 for compilation but a user reported the "redefinition of typedef" error. After some confusion where I wrongfully told the user to fetch the latest source using Git, I took a closer look and found something similar to this:

/* mystruct.h */

#ifdef MYSTRUCT_H
#define MYSTRUCT_H

typedef struct _mystruct mystruct

#endif



/* mystruct.c */
#include "mystruct.h"

typedef struct _mystruct
{
    int a;
    int b;

} mystruct;

Which is quite easy to fix for the older GCC versions, but why is this no longer an error? Or does it need reporting?

James Morris
  • 4,867
  • 3
  • 32
  • 51
  • cant... wait... until... we replace... C preprocessor... with an actual... scripting language... like PHP or objective C smalltalk analog.. – Dmytro Jul 27 '17 at 17:33

1 Answers1

6

This looks like a deliberate change...

I don't have 4.6 to hand, but it looks like you will get the warning if you use -pedantic.

Matthew Slattery
  • 45,290
  • 8
  • 103
  • 119