Re: freefunc - name clash with Python.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Does my test program do anything interesting on your system?

rsalz@xxxxxxxxxx said:
> I dlon't lnow about Python's freefunc, no idea what it is, but the OpenSSL
> line is defining a function with a local parameter named freefunc. Those
> names shouldn't clash; what compiler and flags?

Python has:
typedef void (*freefunc)(void *);

That looks weird to me, but I'm not a language guy.

$ cc --version
cc (GCC) 10.1.1 20200507 (Red Hat 10.1.1-1)
(Fedora)

cc -Wshadow -I/usr/include/python3.8 -I/usr/local/ssl/include -o 
freefunc-shadow freefunc-shadow.c


> Can you switch the include order?

That solves my problem.  I was assuming this should get sorted out before release so other users don't get confused.

There are 24 warnings, 535 lines.  Here is everything from the last one.

/usr/local/ssl/include/openssl/safestack.h:124:72: warning: declaration of â??freefuncâ?? shadows a global declaration [-Wshadow]
  124 |                                        sk_##t1##_freefunc freefunc) \
      |                                        ~~~~~~~~~~~~~~~~~~~^~~~~~~~

/usr/local/ssl/include/openssl/safestack.h:135:29: note: in expansion of macro â??SKM_DEFINE_STACK_OFâ??
  135 | # define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t)
      |                             ^~~~~~~~~~~~~~~~~~~
/usr/local/ssl/include/openssl/safestack.h:175:40: note: in expansion of macro â??DEFINE_STACK_OFâ??
  175 | # define DEFINE_OR_DECLARE_STACK_OF(s) DEFINE_STACK_OF(s)
      |                                        ^~~~~~~~~~~~~~~
/usr/local/ssl/include/openssl/asn1.h:591:1: note: in expansion of macro â??DEFINE_OR_DECLARE_STACK_OFâ??
  591 | DEFINE_OR_DECLARE_STACK_OF(ASN1_GENERALSTRING)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/python3.8/pytime.h:6,
                 from /usr/include/python3.8/Python.h:85,
                 from freefunc-shadow.c:9:
/usr/include/python3.8/object.h:156:16: note: shadowed declaration is here
  156 | typedef void (*freefunc)(void *);
      |                ^~~~~~~~


Looking closer, there are 12 repeated pairs.

... | grep warning

/usr/local/ssl/include/openssl/safestack.h:90:97: warning: declaration of â??freefuncâ?? shadows a global declaration [-Wshadow]
/usr/local/ssl/include/openssl/safestack.h:124:72: warning: declaration of â??freefuncâ?? shadows a global declaration [-Wshadow]
/usr/local/ssl/include/openssl/safestack.h:90:97: warning: declaration of â??freefuncâ?? shadows a global declaration [-Wshadow]
/usr/local/ssl/include/openssl/safestack.h:124:72: warning: declaration of â??freefuncâ?? shadows a global declaration [-Wshadow]
...
/usr/local/ssl/include/openssl/safestack.h:90:97: warning: declaration of â??freefuncâ?? shadows a global declaration [-Wshadow]
/usr/local/ssl/include/openssl/safestack.h:124:72: warning: declaration of â??freefuncâ?? shadows a global declaration [-Wshadow]


-- 
These are my opinions.  I hate spam.







[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux