<?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>192491</bug_id>
          
          <creation_ts>2018-12-07 02:05:18 -0800</creation_ts>
          <short_desc>[WTF] Debug build fails due conflicting abort() method</short_desc>
          <delta_ts>2018-12-08 14:11:24 -0800</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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1485950</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2018-12-07 02:05:18 -0800</bug_when>
    <thetext>When building passing -DCMAKE_BUILD_TYPE=Debug:

 - The XMLHttpRequest class defines an ::abort() method (in Source/WebCore/xml/XMLHttpRequest.h)
 - The CRASH() and CRASH_UNDER_CONSTEXPR_CONTEXT macros (in Source/WTF/wtf/Assertions.h) call
   the abort() function, but inside the code for XMLHttpRequest that would implicitly call
   the method. Ugh.

Probably the best solution is to make the macros in Assertions.h use the
namespace (so they expand to std::abort), to avoid the method being picked
when expandin the macros.

Compilation error follows.

----

In file included from DerivedSources/ForwardingHeaders/wtf/StdLibExtras.h:32,
                 from DerivedSources/ForwardingHeaders/wtf/FastMalloc.h:25,
                 from ../Source/WebCore/config.h:51,
                 from CSSValueKeywords.gperf:4,
                 from DerivedSources/WebCore/unified-sources/UnifiedSource1.cpp:1:
../Source/WebCore/xml/XMLHttpRequest.h: In static member function ‘static void* WebCore::XMLHttpRequest::operator new(size_t, NotNullTag, void*)’:
DerivedSources/ForwardingHeaders/wtf/Assertions.h:244:23: error: cannot call member function ‘void WebCore::XMLHttpRequest::abort()’ without object
 #define CRASH() abort()
                       ^
DerivedSources/ForwardingHeaders/wtf/Assertions.h:587:30: note: in expansion of macro ‘CRASH’
 #define CRASH_WITH_INFO(...) CRASH()
                              ^~~~~
DerivedSources/ForwardingHeaders/wtf/Assertions.h:323:9: note: in expansion of macro ‘CRASH_WITH_INFO’
         CRASH_WITH_INFO(__VA_ARGS__); \
         ^~~~~~~~~~~~~~~
DerivedSources/ForwardingHeaders/wtf/FastMalloc.h:288:9: note: in expansion of macro ‘ASSERT’
         ASSERT(location); \
         ^~~~~~
DerivedSources/ForwardingHeaders/wtf/FastMalloc.h:294:5: note: in expansion of macro ‘WTF_MAKE_FAST_ALLOCATED_IMPL’
     WTF_MAKE_FAST_ALLOCATED_IMPL \DerivedSources/ForwardingHeaders/wtf/Assertions.h:244:23: error: cannot call member function ‘void WebCore::XMLHttpRequest::abort()’ without object
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../Source/WebCore/xml/XMLHttpRequest.h:53:5: note: in expansion of macro ‘WTF_MAKE_FAST_ALLOCATED’
     WTF_MAKE_FAST_ALLOCATED;
     ^~~~~~~~~~~~~~~~~~~~~~~</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485953</commentid>
    <comment_count>1</comment_count>
      <attachid>356789</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2018-12-07 02:14:41 -0800</bug_when>
    <thetext>Created attachment 356789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486087</commentid>
    <comment_count>2</comment_count>
      <attachid>356789</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-12-07 11:20:49 -0800</bug_when>
    <thetext>Comment on attachment 356789
Patch

I wonder why none of the bots noticed this. Or why it doesn&apos;t affect me locally. I&apos;ve done many debug builds.

This was good thinking, but unfortunately this is one of a very few headers that get included in C (and Objective C) so we can&apos;t use namespaces here. E.g. from EWS:

/home/buildbot/ews/WebKit/Source/JavaScriptCore/API/tests/testapi.c: In function ‘createStringWithContentsOfFile’:
DerivedSources/ForwardingHeaders/wtf/Assertions.h:244:21: error: expected expression before ‘:’ token
 #define CRASH() std::abort()
                     ^

I was going to suggest renaming XMLHttpRequest::abort instead, but there are more abort()s in the codebase... NetworkResourceLoader.cpp, testbmalloc.cpp....

We could add a new conditional to check #if __cplusplus? But that would be messier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486321</commentid>
    <comment_count>3</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2018-12-08 10:55:28 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #2)
&gt; Comment on attachment 356789 [details]
&gt; Patch
&gt; 
&gt; I wonder why none of the bots noticed this. Or why it doesn&apos;t affect me
&gt; locally. I&apos;ve done many debug builds.
&gt; 
&gt; This was good thinking, but unfortunately this is one of a very few headers
&gt; that get included in C (and Objective C) so we can&apos;t use namespaces here.
&gt; E.g. from EWS:
&gt; 
&gt; /home/buildbot/ews/WebKit/Source/JavaScriptCore/API/tests/testapi.c: In
&gt; function ‘createStringWithContentsOfFile’:
&gt; DerivedSources/ForwardingHeaders/wtf/Assertions.h:244:21: error: expected
&gt; expression before ‘:’ token
&gt;  #define CRASH() std::abort()
&gt;                      ^
&gt; 
&gt; I was going to suggest renaming XMLHttpRequest::abort instead, but there are
&gt; more abort()s in the codebase... NetworkResourceLoader.cpp,
&gt; testbmalloc.cpp....
&gt; 
&gt; We could add a new conditional to check #if __cplusplus? But that would be
&gt; messier.

I think checking for __cplusplus is reasonable, I&apos;ll update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486322</commentid>
    <comment_count>4</comment_count>
      <attachid>356878</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2018-12-08 11:09:02 -0800</bug_when>
    <thetext>Created attachment 356878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486350</commentid>
    <comment_count>5</comment_count>
      <attachid>356878</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-12-08 13:44:43 -0800</bug_when>
    <thetext>Comment on attachment 356878
Patch

:/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486353</commentid>
    <comment_count>6</comment_count>
      <attachid>356878</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-08 14:10:45 -0800</bug_when>
    <thetext>Comment on attachment 356878
Patch

Clearing flags on attachment: 356878

Committed r239012: &lt;https://trac.webkit.org/changeset/239012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486354</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-08 14:10:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486355</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-08 14:11:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/46576939&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356789</attachid>
            <date>2018-12-07 02:14:41 -0800</date>
            <delta_ts>2018-12-08 11:08:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192491-20181207121440.patch</filename>
            <type>text/plain</type>
            <size>1386</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4OTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ0OTNhNGU5YmViMmQxYTA4YWExZjM2
ODVjNzQwMzAyYmExNmI5NjUuLjhlZTFhZDY3ZDI0ODI0MzM2MGFlYTVjNGZkNzRmYjZiMWJiNjUy
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMTItMDcgIEFkcmlhbiBQZXJleiBkZSBDYXN0
cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1RGXSBEZWJ1ZyBidWlsZCBmYWls
cyBkdWUgY29uZmxpY3RpbmcgYWJvcnQoKSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQ5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDogVXNlIG5hbWVzcGFj
ZWQgc3RkOjphYm9ydCgpIGluc3RlZCBvZiBwbGFpbgorICAgICAgICBhYm9ydCgpIHRvIGF2b2lk
IGNsYXNoZXMgaW5zaWRlIGNsYXNzZXMgd2hpY2ggaGF2ZSBhbiA6OmFib3J0KCkKKyAgICAgICAg
bWV0aG9kLgorCiAyMDE4LTEyLTA2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgogCiAgICAgICAgIE1vdmUgVVNFX05FV19USEVNRSBvdXQgb2YgV2ViQ29yZSdzIGNvbmZpZy5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0
Zi9Bc3NlcnRpb25zLmgKaW5kZXggZWJhYWEwNTZkNTYzYzcwNzhiMWQxYmUxOTBmYzkxMzllNjVj
ZTRlMC4uNGZkYzY3NjUxMzAzMDI4MmJjNjlhZWEyNzdmMTYwOTJmMTU4ZDFhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2Vy
dGlvbnMuaApAQCAtMjQxLDggKzI0MSw4IEBAIFdURl9FWFBPUlRfUFJJVkFURSBib29sIFdURklz
RGVidWdnZXJBdHRhY2hlZCh2b2lkKTsKICAgICBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKTsgXAog
fSB3aGlsZSAoMCkKICNlbGlmICFFTkFCTEUoREVWRUxPUEVSX01PREUpICYmICFPUyhEQVJXSU4p
Ci0jZGVmaW5lIENSQVNIKCkgYWJvcnQoKQotI2RlZmluZSBDUkFTSF9VTkRFUl9DT05TVEVYUFJf
Q09OVEVYVCgpIGFib3J0KCkKKyNkZWZpbmUgQ1JBU0goKSBzdGQ6OmFib3J0KCkKKyNkZWZpbmUg
Q1JBU0hfVU5ERVJfQ09OU1RFWFBSX0NPTlRFWFQoKSBzdGQ6OmFib3J0KCkKICNlbHNlCiAjZGVm
aW5lIENSQVNIKCkgV1RGQ3Jhc2goKQogI2RlZmluZSBDUkFTSF9VTkRFUl9DT05TVEVYUFJfQ09O
VEVYVCgpIFdURkNyYXNoKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356878</attachid>
            <date>2018-12-08 11:09:02 -0800</date>
            <delta_ts>2018-12-08 14:10:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192491-20181208210900.patch</filename>
            <type>text/plain</type>
            <size>1537</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGEyMWRjNTZlNmJmNWJhMjMyZjQ2Njg2
ZmE0YThhYzJiOWNlYmViZjQuLmRiZDkyMjdiZDFhYmYzMDE1ZjQ4MmEzZDA3NjMzNjEwZjQ3ZmMx
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMTItMDggIEFkcmlhbiBQZXJleiBkZSBDYXN0
cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1RGXSBEZWJ1ZyBidWlsZCBmYWls
cyBkdWUgY29uZmxpY3RpbmcgYWJvcnQoKSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQ5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDogVXNlIG5hbWVzcGFj
ZWQgc3RkOjphYm9ydCgpIGluc3RlZCBvZiBwbGFpbiBhYm9ydCgpIHRvIGF2b2lkIGNsYXNoZXMK
KyAgICAgICAgaW5zaWRlIGNsYXNzZXMgd2hpY2ggaGF2ZSBhbiA6OmFib3J0KCkgbWV0aG9kLCBi
dXQgb25seSB3aGVuIF9fY3BsdXNwbHVzIGlzIGRlZmluZWQgdG8KKyAgICAgICAgYWxsb3cgaW5j
bHVzaW9uIG9mIHRoZSBoZWFkZXIgaW4gcGxhaW4gQyBzb3VyY2VzLgorCiAyMDE4LTEyLTA3ICBB
bmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBvcHRp
b25hbCB2YXJpYW50cyBvZiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5o
CmluZGV4IGViYWFhMDU2ZDU2M2M3MDc4YjFkMWJlMTkwZmM5MTM5ZTY1Y2U0ZTAuLmYxOTM5OTZm
MDAyZjQxZmQ2YWEzOGM1YmEyZTE0N2NmNTBjOGRjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0Fzc2VydGlvbnMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKQEAgLTI0
MSw4ICsyNDEsMTMgQEAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgV1RGSXNEZWJ1Z2dlckF0dGFj
aGVkKHZvaWQpOwogICAgIF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyBcCiB9IHdoaWxlICgwKQog
I2VsaWYgIUVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgIU9TKERBUldJTikKKyNpZmRlZiBfX2Nw
bHVzcGx1cworI2RlZmluZSBDUkFTSCgpIHN0ZDo6YWJvcnQoKQorI2RlZmluZSBDUkFTSF9VTkRF
Ul9DT05TVEVYUFJfQ09OVEVYVCgpIHN0ZDo6YWJvcnQoKQorI2Vsc2UKICNkZWZpbmUgQ1JBU0go
KSBhYm9ydCgpCiAjZGVmaW5lIENSQVNIX1VOREVSX0NPTlNURVhQUl9DT05URVhUKCkgYWJvcnQo
KQorI2VuZGlmIC8vIF9fY3BsdXNwbHVzCiAjZWxzZQogI2RlZmluZSBDUkFTSCgpIFdURkNyYXNo
KCkKICNkZWZpbmUgQ1JBU0hfVU5ERVJfQ09OU1RFWFBSX0NPTlRFWFQoKSBXVEZDcmFzaCgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>