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