<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>142524</bug_id>
          
          <creation_ts>2015-03-09 19:37:32 -0700</creation_ts>
          <short_desc>GCC: CRASH() should be annotated with NORETURN</short_desc>
          <delta_ts>2015-03-12 10:50:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>142629</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1075871</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-03-09 19:37:32 -0700</bug_when>
    <thetext>When I used CRASH() at the end of a function I&apos;m working on, I got this warning:

warning: control reaches end of non-void function [-Wreturn-type]

At first I thought GCC was extremely dumb here, but it turns out that our CRASH() function only gets the noreturn attribute when complied with Clang or MSVC. It should be used with GCC too.

I noticed two side-effects of this change, which are simple enough to fix in the same patch:

* With that attribute added, GCC will warn that WTFCrash and WTFCrashWithSecurityImplication do return, because it&apos;s not smart enough to detect calling the null pointer as a noreturn. Easiest fix is to use __builtin_trap like we already do for Clang.

* jsc.cpp intentionally uses a return at the end of a noreturn function to avoid a compiler diagnostic, which now triggers a warning from GCC. The #ifdef here was previously #if !COMPILER(CLANG) &amp;&amp; !COMPILER(MSVC) so it must have been added just for GCC, so I&apos;ve removed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075873</commentid>
    <comment_count>1</comment_count>
      <attachid>248313</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-03-09 19:44:25 -0700</bug_when>
    <thetext>Created attachment 248313
Mark CRASH() as noreturn when compiling with GCC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075963</commentid>
    <comment_count>2</comment_count>
      <attachid>248313</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-10 09:02:21 -0700</bug_when>
    <thetext>Comment on attachment 248313
Mark CRASH() as noreturn when compiling with GCC

Clearing flags on attachment: 248313

Committed r181326: &lt;http://trac.webkit.org/changeset/181326&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075964</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-10 09:02:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076673</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-03-12 10:50:50 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 248313 [details]
&gt; Mark CRASH() as noreturn when compiling with GCC
&gt; 
&gt; Clearing flags on attachment: 248313
&gt; 
&gt; Committed r181326: &lt;http://trac.webkit.org/changeset/181326&gt;

It caused a regression on AArch64 Linux, see bug142629 for details.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248313</attachid>
            <date>2015-03-09 19:44:25 -0700</date>
            <delta_ts>2015-03-10 09:02:21 -0700</delta_ts>
            <desc>Mark CRASH() as noreturn when compiling with GCC</desc>
            <filename>Mark-CRASH-as-noreturn-when-compiling-with-GCC.patch</filename>
            <type>text/plain</type>
            <size>3518</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">RnJvbSBhZWYxY2QyNDlkOGNmZjQyZWRhYjMzMjhhN2I5MTM2ZGFiNTlkZjJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0BpZ2FsaWEu
Y29tPgpEYXRlOiBNb24sIDkgTWFyIDIwMTUgMjE6NDE6MDEgLTA1MDAKU3ViamVjdDogW1BBVENI
XSBNYXJrIENSQVNIKCkgYXMgbm9yZXR1cm4gd2hlbiBjb21waWxpbmcgd2l0aCBHQ0MKCmh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI1MjQKLS0tCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nIHwgMTIgKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcCAgIHwgIDMgLS0tCiBTb3VyY2UvV1RGL0NoYW5nZUxvZyAgICAgICAgICAg
IHwgMTIgKysrKysrKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAgIHwgIDQg
KystLQogU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oICAgICB8ICAyICstCiA1IGZpbGVzIGNo
YW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggNjdkNzJiMS4uNzJiNmY0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTUtMDMtMDkgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFy
b0BpZ2FsaWEuY29tPgorCisgICAgICAgIEdDQzogQ1JBU0goKSBzaG91bGQgYmUgYW5ub3RhdGVk
IHdpdGggTk9SRVRVUk4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjUyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIERvbid0IHJldHVybiBmcm9tIGEgTk9SRVRVUk4gZnVuY3Rpb24uIFRoaXMgdXNlZCB0
byBhdm9pZCBhIHdhcm5pbmcgZnJvbSBHQ0MsIGJ1dCBub3cgaXQKKyAgICAgICAgY2F1c2VzIG9u
ZS4KKworICAgICAgICAqIGpzYy5jcHA6CisKIDIwMTUtMDMtMDcgIEdlb2ZmcmV5IEdhcmVuICA8
Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgRmFzdE1hbGxvYyAoYm1hbGxvYykgaW5z
dGVhZCBvZiBCbG9ja0FsbG9jYXRvciBmb3IgR0MgcGFnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5k
ZXggMGJjMGQ3Zi4uYTEwNmM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTM2Myw5ICszNjMs
NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggYm9vbCBkZWxl
dGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotI2lmIENPTVBJTEVSX1FVSVJLKENP
TlNJREVSU19VTlJFQUNIQUJMRV9DT0RFKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgog
ICAgIH0KIAogICAgIHVuc2lnbmVkIGdldExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdmVjdG9y
LnNpemUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwppbmRleCAyZTkzODFkLi5mMmZlNGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE1LTAzLTA5ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBHQ0M6IENSQVNIKCkgc2hvdWxkIGJlIGFubm90YXRlZCB3aXRoIE5PUkVUVVJOCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI1MjQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQ09NUElM
RVIoR0NDKSB0byAjaWZkZWZzIHRoYXQgYWxyZWFkeSBleGlzdCBmb3IgQ2xhbmcuCisKKyAgICAg
ICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKwog
MjAxNS0wMy0wNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2luXSBSZXZpdmUgV1RGOjpXb3JrUXVldWUgb24gV2luZG93cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNw
cAppbmRleCAwZGQxYTJmLi4xOTFkNTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3Nl
cnRpb25zLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcApAQCAtMzIwLDcg
KzMyMCw3IEBAIHZvaWQgV1RGQ3Jhc2goKQogICAgIFdURlJlcG9ydEJhY2t0cmFjZSgpOwogICAg
ICooaW50ICopKHVpbnRwdHJfdCkweGJiYWRiZWVmID0gMDsKICAgICAvLyBNb3JlIHJlbGlhYmxl
LCBidXQgZG9lc24ndCBzYXkgQkJBREJFRUYuCi0jaWYgQ09NUElMRVIoQ0xBTkcpCisjaWYgQ09N
UElMRVIoQ0xBTkcpIHx8IENPTVBJTEVSKEdDQykKICAgICBfX2J1aWx0aW5fdHJhcCgpOwogI2Vs
c2UKICAgICAoKHZvaWQoKikoKSkwKSgpOwpAQCAtMzM0LDcgKzMzNCw3IEBAIHZvaWQgV1RGQ3Jh
c2hXaXRoU2VjdXJpdHlJbXBsaWNhdGlvbigpCiAgICAgV1RGUmVwb3J0QmFja3RyYWNlKCk7CiAg
ICAgKihpbnQgKikodWludHB0cl90KTB4ZmJhZGJlZWYgPSAwOwogICAgIC8vIE1vcmUgcmVsaWFi
bGUsIGJ1dCBkb2Vzbid0IHNheSBmYmFkYmVlZi4KLSNpZiBDT01QSUxFUihDTEFORykKKyNpZiBD
T01QSUxFUihDTEFORykgfHwgQ09NUElMRVIoR0NDKQogICAgIF9fYnVpbHRpbl90cmFwKCk7CiAj
ZWxzZQogICAgICgodm9pZCgqKSgpKTApKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9B
c3NlcnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXggYmUzNGUwMS4u
OTVkMGQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaApAQCAtMTEyLDcgKzExMiw3IEBAIGV4dGVybiAiQyIg
ewogCiAgICBTaWduYWxzIGFyZSBpZ25vcmVkIGJ5IHRoZSBjcmFzaCByZXBvcnRlciBvbiBPUyBY
IHNvIHdlIG11c3QgZG8gYmV0dGVyLgogKi8KLSNpZiBDT01QSUxFUihDTEFORykgfHwgQ09NUElM
RVIoTVNWQykKKyNpZiBDT01QSUxFUihDTEFORykgfHwgQ09NUElMRVIoR0NDKSB8fCBDT01QSUxF
UihNU1ZDKQogI2RlZmluZSBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIE5PX1JFVFVSTgogI2Vsc2UK
ICNkZWZpbmUgTk9fUkVUVVJOX0RVRV9UT19DUkFTSAotLSAKMi4xLjA=
</data>

          </attachment>
      

    </bug>

</bugzilla>