cpython/Include
Gregory P. Smith e348c8d154 Using 'long double' to force this structure to be worst case aligned is no
longer required as of Python 2.5+ when the gc_refs changed from an int (4
bytes) to a Py_ssize_t (8 bytes) as the minimum size is 16 bytes.

The use of a 'long double' triggered a warning by Clang trunk's
Undefined-Behavior Sanitizer as on many platforms a long double requires
16-byte alignment but the Python memory allocator only guarantees 8 byte
alignment.

So our code would allocate and use these structures with technically improper
alignment.  Though it didn't matter since the 'dummy' field is never used.
This silences that warning.

Spelunking into code history, the double was added in 2001 to force better
alignment on some platforms and changed to a long double in 2002 to appease
Tru64.  That issue should no loner be present since the upgrade from int to
Py_ssize_t where the minimum structure size increased to 16 (unless anyone
knows of a platform where ssize_t is 4 bytes?) or 24 bytes depending on if the
build uses 4 or 8 byte pointers.

We can probably get rid of the double and this union hack all together today.
That is a slightly more invasive change that can be left for later.

A more correct non-hacky alternative if any alignment issues are still found
would be to use a compiler specific alignment declaration on the structure and
determine which value to use at configure time.
2012-12-10 18:05:05 -08:00
..
abstract.h Issue #16148: Small improvements and cleanup. Added version information 2012-10-07 10:29:32 +02:00
accu.h Issue #14387 : undefine 'small' so that it doesn't clash with Windows headers. 2012-03-22 23:10:37 +00:00
asdl.h create NameConstant AST class for None, True, and False literals (closes #16619) 2012-12-06 17:41:04 -05:00
ast.h add a AST validator (closes #12575) 2011-08-09 16:15:04 -05:00
bitset.h REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
bltinmodule.h these builtins have to be initialized 2009-05-09 18:10:51 +00:00
boolobject.h #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. 2007-12-19 02:45:37 +00:00
bytearrayobject.h Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
bytes_methods.h Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
bytesobject.h Simplify and optimize formatlong() 2012-04-27 23:40:13 +02:00
cellobject.h Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
ceval.h Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
classobject.h Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
code.h map cells to arg slots at code creation time (closes #12399) 2011-06-25 22:54:45 -05:00
codecs.h Fix build under Windows 2011-10-15 16:38:20 +02:00
compile.h Move code related to compile from Python.h to compile.h 2011-09-29 01:04:08 +02:00
complexobject.h Issue #14744: Use the new _PyUnicodeWriter internal API to speed up str%args and str.format(args) 2012-05-29 12:57:52 +02:00
datetime.h Issue #13727: Add 3 macros to access PyDateTime_Delta members: 2012-01-17 21:31:50 +01:00
descrobject.h Issue #13577: various kinds of descriptors now have a __qualname__ attribute. 2011-12-12 13:47:25 +01:00
dictobject.h Issue #14785: Add sys._debugmallocstats() to help debug low-level memory allocation issues 2012-06-22 14:55:41 -04:00
dtoa.h Issue #14521: Make result of float('nan') and float('-nan') more consistent across platforms. Further, don't rely on Py_HUGE_VAL for float('inf'). 2012-04-29 15:31:56 +01:00
dynamic_annotations.h Closes issue #13488: Some old preprocessors have problem with #define not in the first column 2011-11-27 05:16:22 +01:00
enumobject.h Implement and apply PEP 322, reverse iteration 2003-11-06 14:06:48 +00:00
errcode.h Issue #12705: Raise SyntaxError when compiling multiple statements as single interactive statement 2012-01-19 01:08:41 -06:00
eval.h Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
fileobject.h Issue #12287: Fix a stack corruption in ossaudiodev module when the FD is 2011-08-28 17:51:43 +02:00
fileutils.h Issue #14153 Create _Py_device_encoding() to prevent _io from having to import 2012-02-29 18:31:31 -05:00
floatobject.h Issue #14785: Add sys._debugmallocstats() to help debug low-level memory allocation issues 2012-06-22 14:55:41 -04:00
frameobject.h Update comment: SAVE_EXC_STATE and SWAP_EXC_STATE macroses are saave_exc_state and swap_exc_state functions now. 2012-12-05 17:59:10 +02:00
funcobject.h PEP 3155 / issue #13448: Qualified name for classes and functions. 2011-11-25 18:56:07 +01:00
genobject.h Issue #13783: the PEP 380 implementation no longer expands the public C API 2012-06-17 15:15:49 +10:00
graminit.h Implement PEP 380 - 'yield from' (closes #11682) 2012-01-13 21:43:40 +10:00
grammar.h make PyGrammar_LabelRepr return a const char * (closes #16369) 2012-10-31 13:36:13 -04:00
import.h Issue #15610: The PyImport_ImportModuleEx macro now calls 2012-08-10 18:55:08 -04:00
intrcheck.h Issue #12328: Under Windows, refactor handling of Ctrl-C events and 2011-11-21 21:26:56 +01:00
iterobject.h Rename _PyIter_GetBuiltin to _PyObject_GetBuiltin, and do not include it in the stable ABI. 2012-04-05 00:04:20 +02:00
listobject.h Issue #14785: Add sys._debugmallocstats() to help debug low-level memory allocation issues 2012-06-22 14:55:41 -04:00
longintrepr.h Issue #7652: Integrate the decimal floating point libmpdec library to speed 2012-03-21 18:25:23 +01:00
longobject.h Issue #14744: Use the new _PyUnicodeWriter internal API to speed up str%args and str.format(args) 2012-05-29 12:57:52 +02:00
marshal.h Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
memoryobject.h Issue #14930: Make memoryview objects weakrefable. 2012-05-28 21:35:09 +01:00
metagrammar.h REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
methodobject.h Issue #14785: Add sys._debugmallocstats() to help debug low-level memory allocation issues 2012-06-22 14:55:41 -04:00
modsupport.h Issue #11626: Add _SizeT functions to stable ABI. 2012-06-24 00:00:30 +02:00
moduleobject.h Issue #3080: Add PyModule_NewObject() function 2011-03-04 12:57:07 +00:00
namespaceobject.h Eric Snow's implementation of PEP 421. 2012-06-03 16:18:47 -04:00
node.h MERGE: Closes #15512: Correct __sizeof__ support for parser 2012-08-03 14:29:26 +02:00
object.h remove unused flag (closes #16505) 2012-11-18 20:49:39 -06:00
objimpl.h Using 'long double' to force this structure to be worst case aligned is no 2012-12-10 18:05:05 -08:00
opcode.h Implement PEP 380 - 'yield from' (closes #11682) 2012-01-13 21:43:40 +10:00
osdefs.h Merge 3.3. 2012-11-12 20:24:09 +01:00
parsetok.h Issue #10785: Store the filename as Unicode in the Python parser. 2011-04-05 00:39:01 +02:00
patchlevel.h Post-release update. 2012-09-29 14:21:25 +02:00
pgen.h Changes from Jonathan Riehl to allow his pgen extension (PEP 269) to 2003-04-17 14:55:42 +00:00
pgenheaders.h Use Py_GCC_ATTRIBUTE instead of __attribute__. Compilers other than GCC 2002-09-15 14:09:54 +00:00
py_curses.h Issue #12567: The curses module uses Unicode functions for Unicode arguments 2011-11-25 22:10:02 +01:00
pyarena.h Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
pyatomic.h - Issue #11147: Fix an unused argument in _Py_ANNOTATE_MEMORY_ORDER. (Fix 2011-12-05 16:45:02 -05:00
pycapsule.h Merged revisions 88517 via svnmerge from 2011-02-22 23:43:57 +00:00
pyctype.h Try to fix linking failures under Windows 2011-10-04 14:43:47 +02:00
pydebug.h Merge 3.2: Issue #13703 plus some related test suite fixes. 2012-02-21 00:33:36 +01:00
pyerrors.h use char instead of int to please T_BOOL (closes #15597) 2012-08-08 17:22:50 -07:00
pyexpat.h Issue #14007: implement doctype() method calling in XMLParser of _elementtree. 2012-06-01 11:32:34 +03:00
pyfpe.h Remove trailing whitespace in order to silence warnings on HP-UX. 2012-08-31 17:11:39 -04:00
pygetopt.h Fix test failure in test_cmd_line by initializing the hash secret at the earliest point. 2012-02-21 19:03:47 +01:00
pymacconfig.h #11565: Merge with 3.1. 2011-03-16 11:35:38 +02:00
pymacro.h GCC doesn't support typeof in strict ansi mode (e.g. -ansi or -std=c89) 2012-09-23 16:15:01 +02:00
pymath.h Issue #11495: OSF support is eliminated. It was deprecated in Python 3.2 2011-03-14 17:36:54 +01:00
pymem.h Merged revisions 78192 via svnmerge from 2010-02-14 14:09:25 +00:00
pyport.h Issue 10052: merge fix from 3.2. 2012-12-02 13:21:37 +00:00
pystate.h Issue #13992: The trashcan mechanism is now thread-safe. This eliminates 2012-09-06 01:17:42 +02:00
pystrcmp.h Merged revisions 59541-59561 via svnmerge from 2007-12-19 02:07:34 +00:00
pystrtod.h Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
Python-ast.h create NameConstant AST class for None, True, and False literals (closes #16619) 2012-12-06 17:41:04 -05:00
Python.h Eric Snow's implementation of PEP 421. 2012-06-03 16:18:47 -04:00
pythonrun.h Issue #14928: Fix importlib bootstrap issues by using a custom executable (Modules/_freeze_importlib) to build Python/importlib.h. 2012-06-19 22:29:35 +02:00
pythread.h Issue #11223: Replace threading._info() by sys.thread_info 2011-04-30 14:53:09 +02:00
pytime.h PEP 418: Rename adjusted attribute to adjustable in time.get_clock_info() result 2012-06-12 22:46:37 +02:00
rangeobject.h #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. 2007-12-19 02:45:37 +00:00
setobject.h Issue #14785: Add sys._debugmallocstats() to help debug low-level memory allocation issues 2012-06-22 14:55:41 -04:00
sliceobject.h Issue #16451: Refactor to remove duplication between range and slice in slice index computations. 2012-11-17 19:18:10 +00:00
structmember.h s/tabs/spaces, and clean trailing whitespace 2012-05-23 07:09:08 +03:00
structseq.h Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
symtable.h Issue #5765: Merge from 3.3 2012-11-04 23:53:15 +10:00
sysmodule.h Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
token.h make _PyParser_TokenNames const 2012-10-24 08:21:52 -07:00
traceback.h Issue #11393: _Py_DumpTraceback() writes the header even if there is no frame 2011-04-01 15:34:01 +02:00
tupleobject.h Issue #14785: Add sys._debugmallocstats() to help debug low-level memory allocation issues 2012-06-22 14:55:41 -04:00
typeslots.h Issue #11134: Add missing fields to typeslots.h. 2011-02-11 20:50:24 +00:00
ucnhash.h #12753: Add support for Unicode name aliases and named sequences. 2011-10-21 21:57:36 +03:00
unicodeobject.h Issue #16455: On FreeBSD and Solaris, if the locale is C, the 2012-12-04 01:34:47 +01:00
warnings.h Issue #10779: PyErr_WarnExplicit() decodes the filename from the filesystem 2010-12-27 20:10:36 +00:00
weakrefobject.h Issue #16602: When a weakref's target was part of a long deallocation chain, the object could remain reachable through its weakref even though its refcount had dropped to zero. 2012-12-08 21:15:26 +01:00