This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re-order intrpvar.h to avoid false warnings about holes.
authorNicholas Clark <nick@ccl4.org>
Fri, 11 Nov 2011 13:54:27 +0000 (14:54 +0100)
committerNicholas Clark <nick@ccl4.org>
Fri, 11 Nov 2011 13:54:27 +0000 (14:54 +0100)
Under the default configuration options for ithreads on x86_64 *nix,
PERL_IMPLICIT_CONTEXT is defined. The variables specific to this are at the
end of the interpreter struct, and their size is not an integer multiple of
its alignment constraint. Hence there will always be a "hole". Move the
"hole" so that it is beyond the end of the structure. This avoids the Linux
tool "pahole", used for finding wasted space, from a false positive report
of a hole that can't be avoided.

intrpvar.h

index 1855487..0b32657 100644 (file)
@@ -734,8 +734,8 @@ PERLVAR(I, reentrant_retint, int)   /* Integer return value from reentrant functio
 #define PERL_LAST_5_16_0_INTERP_MEMBER Ireentrant_retint
 
 #ifdef PERL_IMPLICIT_CONTEXT
-PERLVARI(I, my_cxt_size, int,  0)      /* size of PL_my_cxt_list */
 PERLVARI(I, my_cxt_list, void **, NULL) /* per-module array of MY_CXT pointers */
+PERLVARI(I, my_cxt_size, int,  0)      /* size of PL_my_cxt_list */
 #  ifdef PERL_GLOBAL_STRUCT_PRIVATE
 PERLVARI(I, my_cxt_keys, const char **, NULL) /* per-module array of pointers to MY_CXT_KEY constants */
 #  endif