<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:21:09 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-9680] Invalid use of negative enumeration on type not declared as signed</title>
                <link>https://jira.mongodb.org/browse/SERVER-9680</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;MinKey is defined as -1, so a signed char must be used to store BSONType&lt;br/&gt;
enumerations. Using a char to store a negative value results in&lt;br/&gt;
undefined behaviour. On i386 and amd64 architectures it happens to work&lt;br/&gt;
because on these platforms a char is generally signed, but this is not&lt;br/&gt;
guaranteed.&lt;/p&gt;</description>
                <environment></environment>
        <key id="75280">SERVER-9680</key>
            <summary>Invalid use of negative enumeration on type not declared as signed</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="andrew.morrow@mongodb.com">Andrew Morrow</assignee>
                                    <reporter username="rwbb">Robie Basak</reporter>
                        <labels>
                            <label>pull-request</label>
                    </labels>
                <created>Tue, 14 May 2013 12:44:59 +0000</created>
                <updated>Mon, 11 Jul 2016 17:38:00 +0000</updated>
                            <resolved>Tue, 4 Jun 2013 17:36:26 +0000</resolved>
                                                    <fixVersion>2.5.1</fixVersion>
                                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="352689" author="auto" created="Tue, 4 Jun 2013 17:08:02 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;name&apos;: u&apos;Robie Basak&apos;, u&apos;email&apos;: u&apos;robie.basak@canonical.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-9680&quot; title=&quot;Invalid use of negative enumeration on type not declared as signed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-9680&quot;&gt;&lt;del&gt;SERVER-9680&lt;/del&gt;&lt;/a&gt; Use a signed char to store BSONType enumerations&lt;/p&gt;

&lt;p&gt;MinKey is defined as -1, so a signed char must be used to store BSONType&lt;br/&gt;
enumerations. Using a char to store a negative value results in&lt;br/&gt;
undefined behaviour. On i386 and amd64 architectures it happens to work&lt;br/&gt;
because on these platforms a char is generally signed, but this is not&lt;br/&gt;
guaranteed.&lt;/p&gt;

&lt;p&gt;This fixes a build failure on ARM, where chars are unsigned by default,&lt;br/&gt;
and using MinKey (defined as -1) results in a compiler error.&lt;/p&gt;

&lt;p&gt;Signed-off-by: Andrew Morrow &amp;lt;acm@10gen.com&amp;gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/7c151707ca81af0ade246bb181f1b424ae6b9a4f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/7c151707ca81af0ade246bb181f1b424ae6b9a4f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="350457" author="rwbb" created="Sat, 1 Jun 2013 06:21:01 +0000"  >&lt;p&gt;&amp;gt; Does the ARM compiler have an option to treat char as signed by default?&lt;/p&gt;

&lt;p&gt;Yes - you can use -fsigned-char and modify your build system to suit. This should work.&lt;/p&gt;

&lt;p&gt;However, char is specified in the C standard as of undefined signedness, so you&apos;d be depending on gcc and your build system to be able to build unportable/nonstandard C.&lt;/p&gt;

&lt;p&gt;IMHO, a better long term solution is to fix your code base to be portable where possible, and to ban unportable/undefined/nonstandard code from your code base except where absolutely necessary. This is certainly one area where this is trivial to do, and fixes the problem.&lt;/p&gt;

&lt;p&gt;If it turns out that there are other areas in the code where using &quot;char&quot; has led to buggy code due to a &quot;signed&quot; assumption, and this has gone undetected, then maybe we can use -fsigned-char as a workaround with a view to improving test coverage?&lt;/p&gt;</comment>
                            <comment id="350344" author="tad" created="Sat, 1 Jun 2013 00:29:16 +0000"  >&lt;p&gt;I think the codebase assumes that char is signed pretty much throughout, although it may not matter in most places.  We certainly specify unsigned in the places where we want unsigned.&lt;/p&gt;

&lt;p&gt;Does the ARM compiler have an option to treat char as signed by default?  Wouldn&apos;t that be a more effective way to address the problem?&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 31 May 2013 23:09:55 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        10 years, 37 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>ramon.fernandez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            10 years, 37 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Old_Backport</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10000"><![CDATA[No]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10020"><![CDATA[Linux]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>andrew.morrow@mongodb.com</customfieldvalue>
            <customfieldvalue>auto</customfieldvalue>
            <customfieldvalue>rwbb</customfieldvalue>
            <customfieldvalue>tad</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrmt3j:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrnuqn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>52954</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10750" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Steps To Reproduce</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;p&gt;Attempt to build on armhf.&lt;/p&gt;</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10166" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Tests Written</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10153"><![CDATA[Unneeded]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrkyrb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>