Jump to content
Sign in to follow this  
qu1j0t3

Missed Side-effects In Expression?

Recommended Posts

Given these definitions

 

char sum1(char a,char b){
return a+b;
}
char sum2(char a,char b){
return a+b;
}

 

I was very surprised to find that the compiler eliminates the functions and their calls when followed by this main():

 

void main()
{
sum1(3,4)+sum2(5,6);
}

 

But in this version, the calls are retained:

void main()
{
sum1(3,4); sum2(5,6);
}

Share this post


Link to post
Share on other sites
I was very surprised to find that the compiler eliminates the functions and their calls when followed by this main():

 

void main()
{
sum1(3,4)+sum2(5,6);
}

 

That's correct. Expression doesn't have a destination and gets optimized out by compiler.

 

Regards,

Pavel

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...