<?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>115648</bug_id>
          
          <creation_ts>2013-05-06 08:42:43 -0700</creation_ts>
          <short_desc>Build with GCC 4.8 fails because of -Wmaybe-uninitialized</short_desc>
          <delta_ts>2013-05-06 11:48:28 -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>New Bugs</component>
          <version>528+ (Nightly build)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andras Becsi">abecsi</reporter>
          <assigned_to name="Andras Becsi">abecsi</assigned_to>
          <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>885029</commentid>
    <comment_count>0</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-05-06 08:42:43 -0700</bug_when>
    <thetext>Build with GCC 4.8 fails because of -Wmaybe-uninitialized</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885032</commentid>
    <comment_count>1</comment_count>
      <attachid>200703</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-05-06 08:43:19 -0700</bug_when>
    <thetext>Created attachment 200703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885040</commentid>
    <comment_count>2</comment_count>
      <attachid>200703</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-05-06 09:04:42 -0700</bug_when>
    <thetext>Comment on attachment 200703
Patch

Hmm, maybe there&apos;s a way  to make it so OptionRange has a trivial constructor and then we can manually initialize the fields with an init method? I&apos;m leery of disabling warnings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885122</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-05-06 10:59:22 -0700</bug_when>
    <thetext>I had a trivial constructor but got these messages from clang:

/Volumes/Data/src/webkit.work/Source/JavaScriptCore/runtime/Options.cpp:166:25: error: call to deleted constructor of &apos;Options::Entry [57]&apos;
Options::Entry Options::s_options[Options::numberOfOptions];
                        ^
In file included from /Volumes/Data/src/webkit.work/Source/JavaScriptCore/runtime/Options.cpp:27:
/Volumes/Data/src/webkit.work/Source/JavaScriptCore/runtime/Options.h:222:12: note: function has been explicitly marked deleted here
    struct Entry {
           ^
1 error generated.

Here is the constructor:
    OptionRange()
        : m_state(Uninitialized)
        , m_rangeString(0)
        , m_lowLimit(0)
        , m_highLimit(0)
    {
    }

What line is it complaining may be uninitialized?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885156</commentid>
    <comment_count>4</comment_count>
      <attachid>200731</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-05-06 11:44:24 -0700</bug_when>
    <thetext>Created attachment 200731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885157</commentid>
    <comment_count>5</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-05-06 11:44:43 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I had a trivial constructor but got these messages from clang:
&gt; 
&gt; /Volumes/Data/src/webkit.work/Source/JavaScriptCore/runtime/Options.cpp:166:25: error: call to deleted constructor of &apos;Options::Entry [57]&apos;
&gt; Options::Entry Options::s_options[Options::numberOfOptions];
&gt;                         ^
&gt; In file included from /Volumes/Data/src/webkit.work/Source/JavaScriptCore/runtime/Options.cpp:27:
&gt; /Volumes/Data/src/webkit.work/Source/JavaScriptCore/runtime/Options.h:222:12: note: function has been explicitly marked deleted here
&gt;     struct Entry {
&gt;            ^
&gt; 1 error generated.
&gt; 
&gt; Here is the constructor:
&gt;     OptionRange()
&gt;         : m_state(Uninitialized)
&gt;         , m_rangeString(0)
&gt;         , m_lowLimit(0)
&gt;         , m_highLimit(0)
&gt;     {
&gt;     }

The problem with this is that a constructor with an initializer-list is not trivial any more and hence can not be placed into a union,which can only hold POD.
With &quot;trivial constructor&quot; I actually meant &quot;default constructor with no initializer list and empty body&quot; (equivalent with an implicitly-declared constructor generated by the compiler).

GCC has an informative error message with the above constructor:

error: member &apos;JSC::OptionRange JSC::Options::Entry::&lt;anonymous union&gt;::optionRangeVal&apos; with constructor not allowed in union
note: unrestricted unions only available with -std=c++11 or -std=gnu++11

&gt; 
&gt; What line is it complaining may be uninitialized?

/home/abecsi/devel/git/webkit-git-svn/Source/JavaScriptCore/runtime/Options.cpp:120:17: error: &apos;value.JSC::OptionRange::m_state&apos; may be used uninitialized in this function [-Werror=maybe-uninitialized]

This is actually valid, since in Options::setOption the values are not initialized, hence the new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885160</commentid>
    <comment_count>6</comment_count>
      <attachid>200731</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-05-06 11:48:23 -0700</bug_when>
    <thetext>Comment on attachment 200731
Patch

Clearing flags on attachment: 200731

Committed r149622: &lt;http://trac.webkit.org/changeset/149622&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885161</commentid>
    <comment_count>7</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-05-06 11:48:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200703</attachid>
            <date>2013-05-06 08:43:19 -0700</date>
            <delta_ts>2013-05-06 11:44:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-115648-20130506173910.patch</filename>
            <type>text/plain</type>
            <size>1938</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5NTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZDViZGYxMDRiNGI3ZTRhNGRlMGY5ZTBhZjE0YzM2MTBjNGZmZDhlLi4xZjhlYTA5ODM0YTM1NWUx
NGI3MGU5NzliYjBmYTAxMDE0ZDFlYjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMy0wNS0wNiAgQW5kcmFzIEJlY3NpICA8YW5kcmFzLmJlY3NpQGRpZ2lh
LmNvbT4KKworICAgICAgICBCdWlsZCB3aXRoIEdDQyA0LjggZmFpbHMgYmVjYXVzZSBvZiAtV21h
eWJlLXVuaW5pdGlhbGl6ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExNTY0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE0OTU1MiBPcHRp
b25SYW5nZSBoYXMgYmVlbiBhZGRlZAorICAgICAgICB3aGljaCBpcyBzdG9yZWQgaW4gYSB1bmlv
biBpbiBPcHRpb25zLCB0aHVzIGl0IGNhbiBvbmx5IGhhdmUgYSB0cml2aWFsCisgICAgICAgIGNv
bnN0cnVjdG9yLiBUaGlzIGluIHR1cm4gcmVzdWx0cyBpbiBtYXliZS11bmluaXRpYWxpemVkIHdh
cm5pbmdzICB3aXRoCisgICAgICAgIEdDQyA0LjggZm9yIG1lbWJlcnMgb2YgT3B0aW9uUmFuZ2Us
IHRoZXJlZm9yIHRoZSBidWlsZCBmYWlscyBiZWNhdXNlIG9mCisgICAgICAgIC1XZXJyb3IuCisg
ICAgICAgIFNpbmNlIGl0IGlzIG5vdCByZWFsbHkgdXNlZnVsLCBzdXBwcmVzcyBHQ0MgNC44J3Mg
bWF5YmUtdW5pbml0aWFsaXplZAorICAgICAgICB3YXJuaW5ncyBvbiB0aGlzIHNvdXJjZSBmaWxl
IHRvIGZpeCB0aGUgYnVpbGQuCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorCiAy
MDEzLTA1LTAzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAg
IFRoZXJlIHNob3VsZCBiZSBhIHJ1bnRpbWUgb3B0aW9uIHRvIGNvbnN0cmFpbiB3aGF0IGZ1bmN0
aW9ucyBnZXQgREZHIGNvbXBpbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuY3BwCmluZGV4IDBiNjA2YjI0YTE4NWQ0N2NjYzc1YjdkZWE4OWYxYTM4ZjAzYWRkNGUuLjE1
NjNhM2ZjYTNhMmQ2NTcxNjc0NDY4MWNkMGI1YzM3ODg1Y2U3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC00Miw2ICs0MiwxMSBAQAogI2luY2x1ZGUg
PHN5cy9zeXNjdGwuaD4KICNlbmRpZgogCisjaWYgQ09NUElMRVIoR0NDKSAmJiBHQ0NfVkVSU0lP
Tl9BVF9MRUFTVCg0LCA4LCAwKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21h
IEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbWF5YmUtdW5pbml0aWFsaXplZCIKKyNlbmRpZgor
CiBuYW1lc3BhY2UgSlNDIHsKIAogc3RhdGljIGJvb2wgcGFyc2UoY29uc3QgY2hhciogc3RyaW5n
LCBib29sJiB2YWx1ZSkKQEAgLTI5NCwzICsyOTksNiBAQCB2b2lkIE9wdGlvbnM6OmR1bXBPcHRp
b24oT3B0aW9uSUQgaWQsIEZJTEUqIHN0cmVhbSwgY29uc3QgY2hhciogaGVhZGVyLCBjb25zdCBj
aAogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAorI2lmIENPTVBJTEVSKEdDQykgJiYgR0NDX1ZFUlNJ
T05fQVRfTEVBU1QoNCwgOCwgMCkKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200731</attachid>
            <date>2013-05-06 11:44:24 -0700</date>
            <delta_ts>2013-05-06 11:48:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-115648-20130506204015.patch</filename>
            <type>text/plain</type>
            <size>1580</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
N2NlZDZjN2MwNTMwOTFmM2ViMDk3MGEzMGExZTM4ZjQ4ODViNzc0Li40NTM4N2Y0NzE1NGU0YTVi
YjZlZWU1MjEyZTY4OTVkZGNkZDE0NjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMy0wNS0wNiAgQW5kcmFzIEJlY3NpICA8YW5kcmFzLmJlY3NpQGRpZ2lh
LmNvbT4KKworICAgICAgICBCdWlsZCB3aXRoIEdDQyA0LjggZmFpbHMgYmVjYXVzZSBvZiAtV21h
eWJlLXVuaW5pdGlhbGl6ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExNTY0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEluaXRpYWxpemUgdmFsdWVzIGluIE9wdGlvbnM6OnNldE9wdGlvbiBzaW5jZSBm
cm9tCisgICAgICAgIHRoZXJlIHdlIGVuZCB1cCBjYWxsaW5nIE9wdGlvblJhbmdlOjppbml0IHdp
dGgKKyAgICAgICAgdW5pbml0aWFsaXplZCBtZW1iZXJzLgorCisgICAgICAgICogcnVudGltZS9P
cHRpb25zLmNwcDoKKwogMjAxMy0wNS0wNiAgR2Fib3IgUmFwY3NhbnlpICA8cmdhYm9yQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgSlNDIEFSTSB0cmFkaXRpb25hbCBmYWlsaW5nIG9uIE9jdGFuZSBO
YXZpZXJTdG9rZXMgdGVzdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNw
cAppbmRleCAwYjYwNmIyNGExODVkNDdjY2M3NWI3ZGVhODlmMWEzOGYwM2FkZDRlLi5jM2ZmNDlh
YWRjZGNmMDg4YTljN2ZkOTc4NDdhMTUwMmVmNjkwNTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmNwcApAQCAtMjQ1LDYgKzI0NSw3IEBAIGJvb2wgT3B0aW9uczo6
c2V0T3B0aW9uKGNvbnN0IGNoYXIqIGFyZykKICNkZWZpbmUgRk9SX0VBQ0hfT1BUSU9OKHR5cGVf
LCBuYW1lXywgZGVmYXVsdFZhbHVlXykgICAgXAogICAgIGlmICghc3RybmNtcChhcmcsICNuYW1l
XywgZXF1YWxTdHIgLSBhcmcpKSB7ICAgICAgICBcCiAgICAgICAgIHR5cGVfIHZhbHVlOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdmFsdWUgPSAwOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBib29sIHN1Y2Nlc3Mg
PSBwYXJzZSh2YWx1ZVN0ciwgdmFsdWUpOyAgICAgICAgICBcCiAgICAgICAgIGlmIChzdWNjZXNz
KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIG5hbWVf
KCkgPSB2YWx1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>