https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45000
Jeffrey A. Law changed:
What|Removed |Added
Resolution|--- |FIXED
Status|UNCONFIRMED
--- Comment #5 from kazuhiro dot inaoka dot ud at renesas dot com
2010-08-03 09:32 ---
(In reply to comment #4)
Hi Nick,
My request seems to depend on Renesas callee/caller-extension spec.
> May I also suggest that you contact Matt Newsome at
> Renesas who is also concerned with this
--- Comment #4 from nickc at redhat dot com 2010-07-28 14:05 ---
Hi Kazuhiro-san,
> If the func() is external function, output code is the following.
> bsr_func
> mouv.B r1, r1
> If the return value is zero exteneded,
> "movu.B r1, r1" code can be removed.
Not really. The proble
--- Comment #3 from nickc at redhat dot com 2010-07-28 13:55 ---
Created an attachment (id=21338)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21338&action=view)
Force functions that return small unsigned values to use zero-extension
--
http://gcc.gnu.org/bugzilla/show_bug.cg
--- Comment #2 from kazuhiro dot inaoka dot ud at renesas dot com
2010-07-28 07:19 ---
(In reply to comment #1)
Hi Nick
Thank you for your reply.
Your example is OK.
But I'm not clear.
> extension being performed. Eg:
> int bar (int a) { return a < func(); }
If the func() is exter
--- Comment #1 from nickc at redhat dot com 2010-07-22 09:42 ---
Hi Kazuhiro-san,
This is not a bug, it is the expected behaviour.
What is happening is that the return value from func() is being promoted to
"signed int" (and not "unsigned int" as you might expect). Thus since the
MOV