{"id":5046,"date":"2022-08-26T04:56:24","date_gmt":"2022-08-25T23:26:24","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/"},"modified":"2022-08-26T04:56:24","modified_gmt":"2022-08-25T23:26:24","slug":"solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/","title":{"rendered":"[Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-39312970\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"39312970\" data-parentid=\"39312411\" data-score=\"4\" data-position-on-page=\"2\" data-highest-scored=\"0\" data-question-has-accepted-highest-score=\"0\" itemprop=\"suggestedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>Forgetting the return value results in the control flow reaching the end of a function.  The C and C++ standards both describe this case.  Note that main is an exception to this case and is described separately.<\/p>\n<blockquote>\n<p>Flowing off the end of a function is equivalent to a return with no value; this results in undefined behavior<br \/>\n  in a value-returning function <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2011\/n3242.pdf\">C++11 Draft pg 136<\/a><\/p>\n<\/blockquote>\n<p>My experience with clang has been that the compiler will treat instances of &#8220;undefined behavior&#8221; as <em>will not happen<\/em> and optimize away the paths.  Which is legal, since the behavior is undefined.  Often clang will instead emit an illegal instruction along the omitted path so that the code will crash if the &#8220;impossible&#8221; happens, which is likely your case here.  In fact, the compiler could then determine that calling DummyFunc() results in undefined behavior and therefore cannot happen, and instead start optimizing away the calling bodies.<\/p>\n<p>gcc is far &#8220;friendlier&#8221; and tries to generate something nice, such as returning 0.<\/p>\n<p>Note, both compilers are correct and are producing valid code according to the standard.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">4<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Why does my C++ program crash when I forget the return statement, rather than just returning garbage? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Forgetting the return value results in the control flow reaching the end of a function. The C and C++ standards both describe this case. Note that main is an exception to this case and is described separately. Flowing off the end of a function is equivalent to a return with no value; this results &#8230; <a title=\"[Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/\" aria-label=\"More on [Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage?\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324,1203,1219,1218,1220],"class_list":["post-5046","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-clang","tag-freebsd","tag-llvm","tag-llvm-clang"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage? - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] Forgetting the return value results in the control flow reaching the end of a function. The C and C++ standards both describe this case. Note that main is an exception to this case and is described separately. Flowing off the end of a function is equivalent to a return with no value; this results ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-25T23:26:24+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage?\",\"datePublished\":\"2022-08-25T23:26:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/\"},\"wordCount\":215,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"clang\",\"freebsd\",\"llvm\",\"llvm-clang\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/\",\"name\":\"[Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-08-25T23:26:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage? - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage? - JassWeb","og_description":"[ad_1] Forgetting the return value results in the control flow reaching the end of a function. The C and C++ standards both describe this case. Note that main is an exception to this case and is described separately. Flowing off the end of a function is equivalent to a return with no value; this results ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/","og_site_name":"JassWeb","article_published_time":"2022-08-25T23:26:24+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage?","datePublished":"2022-08-25T23:26:24+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/"},"wordCount":215,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","clang","freebsd","llvm","llvm-clang"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/","url":"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/","name":"[Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-08-25T23:26:24+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-why-does-my-c-program-crash-when-i-forget-the-return-statement-rather-than-just-returning-garbage\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Why does my C++ program crash when I forget the return statement, rather than just returning garbage?"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/5046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=5046"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/5046\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=5046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=5046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=5046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}