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 <rep...@bugs.python.org>
<http://bugs.python.org/issue18090>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to