Larry Hastings added the comment:
I poked around in a draft of the next ANSI C standard dated April 12 2011.
They don't have much to say about the semantics of "register". The definition
is found in 6.7.1.6:
A declaration of an identifier for an object with storage-class
specifier "register" suggests that access to the object be as fast
as possible.
In a footnote they say you can't take the address of something declared
"register".
In 6.7.6.3.2 they explicitly allow using "register" as part of the
specification of a function parameter. However, in 6.9.2 they say "register"
cannot appear as part of an external declaration, including those for functions.
6.9.2 is where I stake my claim. If "register" is irrelevant to calling
convention, then why would the C standard preclude using it in an external
declaration? If it had no effect on the call they wouldn't care.
Therefore, declaring a parameter as "register" affects its calling convention.
(Or, it would, if "register" actually did anything). Therefore casting a
function from using "register" to not using "register" is a bug. Therefore we
shouldn't do it.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue18090>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com