Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Undefined behavior flagged by Clang 3.4 (Python 3.4-RC3) #65128

Closed
JeffreyWalton mannequin opened this issue Mar 15, 2014 · 14 comments
Closed

Undefined behavior flagged by Clang 3.4 (Python 3.4-RC3) #65128

JeffreyWalton mannequin opened this issue Mar 15, 2014 · 14 comments
Labels
build The build process and cross-build type-bug An unexpected behavior, bug, or error

Comments

@JeffreyWalton
Copy link
Mannequin

JeffreyWalton mannequin commented Mar 15, 2014

BPO 20929
Nosy @benjaminp
Files
  • python-3-4-make.txt: Results of 'make' with Clang's undefined behavior sanitizer.
  • python-3-4-make-test.txt: Results of 'make test' with Clang's undefined behavior sanitizer.
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = <Date 2014-03-15.03:20:21.217>
    created_at = <Date 2014-03-15.00:21:50.152>
    labels = ['type-bug', 'build']
    title = 'Undefined behavior flagged by Clang 3.4 (Python 3.4-RC3)'
    updated_at = <Date 2014-03-15.04:38:17.333>
    user = 'https://bugs.python.org/JeffreyWalton'

    bugs.python.org fields:

    activity = <Date 2014-03-15.04:38:17.333>
    actor = 'benjamin.peterson'
    assignee = 'none'
    closed = True
    closed_date = <Date 2014-03-15.03:20:21.217>
    closer = 'benjamin.peterson'
    components = ['Build']
    creation = <Date 2014-03-15.00:21:50.152>
    creator = 'Jeffrey.Walton'
    dependencies = []
    files = ['34425', '34426']
    hgrepos = []
    issue_num = 20929
    keywords = []
    message_count = 14.0
    messages = ['213604', '213607', '213608', '213616', '213618', '213619', '213621', '213622', '213623', '213624', '213626', '213627', '213636', '213637']
    nosy_count = 3.0
    nosy_names = ['benjamin.peterson', 'python-dev', 'Jeffrey.Walton']
    pr_nums = []
    priority = 'normal'
    resolution = 'fixed'
    stage = None
    status = 'closed'
    superseder = None
    type = 'behavior'
    url = 'https://bugs.python.org/issue20929'
    versions = ['Python 3.4']

    @JeffreyWalton
    Copy link
    Mannequin Author

    JeffreyWalton mannequin commented Mar 15, 2014

    Downloaded Python-3.4.0rc3. Compiled with Clang 3.4, added -fsanitzie=undefined to CFLAGS. Ran 'make' and 'make check'.

    Lots of issues, many are duplicates (see below). One or more of these issues might be the reason for -fwrapv.

    This fellow from objimpl.h seems to be the source of many of the issues:

        #define _Py_AS_GC(o) ((PyGC_Head *)(o)-1)

    Modules/gcmodule.c:1718:5: runtime error: left shift of negative value -2
    Objects/tupleobject.c:120:5: runtime error: left shift of negative value -3
    Objects/typeobject.c:905:9: runtime error: left shift of negative value -3
    Objects/dictobject.c:818:5: runtime error: left shift of negative value -3
    Objects/methodobject.c:45:5: runtime error: left shift of negative value -3
    Objects/listobject.c:178:5: runtime error: left shift of negative value -3
    Modules/gcmodule.c:1703:9: runtime error: left shift of negative value -2
    Modules/gcmodule.c:1693:5: runtime error: left shift of negative value -3
    Objects/descrobject.c:9:5: runtime error: left shift of negative value -2
    Modules/gcmodule.c:484:13: runtime error: left shift of negative value -3
    Objects/tupleobject.c:195:5: runtime error: left shift of negative value -2
    Modules/gcmodule.c:503:13: runtime error: left shift of negative value -4
    Objects/exceptions.c:2205:5: runtime error: left shift of negative value -2
    Objects/longobject.c:40:42: runtime error: index -3 out of bounds for type 'PyLongObject [262]'
    Objects/frameobject.c:736:5: runtime error: left shift of negative value -3
    Objects/funcobject.c:64:5: runtime error: left shift of negative value -3
    Objects/methodobject.c:149:5: runtime error: left shift of negative value -2
    Objects/funcobject.c:552:5: runtime error: left shift of negative value -2
    Objects/descrobject.c:1364:5: runtime error: left shift of negative value -2
    Objects/cellobject.c:16:5: runtime error: left shift of negative value -3
    Objects/listobject.c:2744:5: runtime error: left shift of negative value -3
    Objects/listobject.c:2751:5: runtime error: left shift of negative value -2
    Objects/dictobject.c:3232:5: runtime error: left shift of negative value -3
    Objects/dictobject.c:2826:5: runtime error: left shift of negative value -3
    Objects/exceptions.c:89:5: runtime error: left shift of negative value -2
    Objects/classobject.c:68:5: runtime error: left shift of negative value -3
    Objects/classobject.c:193:5: runtime error: left shift of negative value -2
    Objects/tupleobject.c:1079:5: runtime error: left shift of negative value -3
    Objects/genobject.c:526:5: runtime error: left shift of negative value -3
    Objects/tupleobject.c:948:5: runtime error: left shift of negative value -2
    Objects/genobject.c:48:5: runtime error: left shift of negative value -2
    Objects/genobject.c:53:5: runtime error: left shift of negative value -3
    Objects/genobject.c:58:5: runtime error: left shift of negative value -2
    Objects/cellobject.c:49:5: runtime error: left shift of negative value -2
    Objects/typeobject.c:1170:9: runtime error: left shift of negative value -3
    Objects/exceptions.c:662:5: runtime error: left shift of negative value -2
    Objects/exceptions.c:1010:5: runtime error: left shift of negative value -2
    Objects/exceptions.c:513:5: runtime error: left shift of negative value -2
    ./Modules/_io/fileio.c:479:5: runtime error: left shift of negative value -2
    Objects/setobject.c:944:5: runtime error: left shift of negative value -3
    Objects/unicodeobject.c:15267:5: runtime error: left shift of negative value -3
    Objects/unicodeobject.c:15128:5: runtime error: left shift of negative value -2
    Objects/typeobject.c:6720:5: runtime error: left shift of negative value -2
    Objects/bytesobject.c:3006:5: runtime error: left shift of negative value -3
    Objects/bytesobject.c:2869:5: runtime error: left shift of negative value -2
    Objects/bytearrayobject.c:3094:5: runtime error: left shift of negative value -3
    Objects/bytearrayobject.c:2959:5: runtime error: left shift of negative value -2
    Objects/descrobject.c:1001:9: runtime error: left shift of negative value -3
    Objects/descrobject.c:873:5: runtime error: left shift of negative value -2
    Modules/gcmodule.c:861:13: runtime error: left shift of negative value -3
    Objects/typeobject.c:2865:5: runtime error: left shift of negative value -2
    Objects/dictobject.c:2643:9: runtime error: left shift of negative value -2
    Objects/descrobject.c:943:5: runtime error: left shift of negative value -3
    Objects/iterobject.c:26:5: runtime error: left shift of negative value -3
    Objects/iterobject.c:33:5: runtime error: left shift of negative value -2
    Objects/memoryobject.c:74:5: runtime error: left shift of negative value -3
    Objects/memoryobject.c:639:5: runtime error: left shift of negative value -3
    Objects/memoryobject.c:1060:5: runtime error: left shift of negative value -2
    Objects/memoryobject.c:108:5: runtime error: left shift of negative value -2
    ./Modules/_io/bufferedio.c:402:5: runtime error: left shift of negative value -2
    ./Modules/_io/textio.c:1156:5: runtime error: left shift of negative value -2
    Objects/descrobject.c:1262:9: runtime error: left shift of negative value -3
    Objects/listobject.c:2046:22: runtime error: index 623 out of bounds for type 'PyObject *[256]'
    Objects/dictobject.c:756:5: runtime error: left shift of negative value -2
    Objects/funcobject.c:907:5: runtime error: left shift of negative value -2
    Objects/funcobject.c:726:5: runtime error: left shift of negative value -2
    Modules/gcmodule.c:1718:5: runtime error: left shift of negative value -2
    Objects/tupleobject.c:120:5: runtime error: left shift of negative value -3
    Objects/typeobject.c:905:9: runtime error: left shift of negative value -3
    Objects/dictobject.c:818:5: runtime error: left shift of negative value -3
    Objects/methodobject.c:45:5: runtime error: left shift of negative value -3
    Objects/listobject.c:178:5: runtime error: left shift of negative value -3
    Modules/gcmodule.c:1703:9: runtime error: left shift of negative value -2
    Modules/gcmodule.c:1693:5: runtime error: left shift of negative value -3
    Objects/descrobject.c:9:5: runtime error: left shift of negative value -2
    Modules/gcmodule.c:484:13: runtime error: left shift of negative value -3
    Objects/tupleobject.c:195:5: runtime error: left shift of negative value -2
    Modules/gcmodule.c:503:13: runtime error: left shift of negative value -4
    Objects/exceptions.c:2205:5: runtime error: left shift of negative value -2
    Objects/longobject.c:40:42: runtime error: index -3 out of bounds for type 'PyLongObject [262]'
    Objects/frameobject.c:736:5: runtime error: left shift of negative value -3
    Objects/funcobject.c:64:5: runtime error: left shift of negative value -3
    Objects/methodobject.c:149:5: runtime error: left shift of negative value -2
    Objects/funcobject.c:552:5: runtime error: left shift of negative value -2
    Objects/descrobject.c:1364:5: runtime error: left shift of negative value -2
    Objects/cellobject.c:16:5: runtime error: left shift of negative value -3
    Objects/listobject.c:2744:5: runtime error: left shift of negative value -3
    Objects/listobject.c:2751:5: runtime error: left shift of negative value -2
    Objects/dictobject.c:3232:5: runtime error: left shift of negative value -3
    Objects/dictobject.c:2826:5: runtime error: left shift of negative value -3
    Objects/exceptions.c:89:5: runtime error: left shift of negative value -2
    Objects/classobject.c:68:5: runtime error: left shift of negative value -3
    Objects/classobject.c:193:5: runtime error: left shift of negative value -2
    Objects/tupleobject.c:1079:5: runtime error: left shift of negative value -3
    Objects/genobject.c:526:5: runtime error: left shift of negative value -3
    Objects/tupleobject.c:948:5: runtime error: left shift of negative value -2
    Objects/genobject.c:48:5: runtime error: left shift of negative value -2
    Objects/genobject.c:53:5: runtime error: left shift of negative value -3
    Objects/genobject.c:58:5: runtime error: left shift of negative value -2
    Objects/cellobject.c:49:5: runtime error: left shift of negative value -2
    Objects/typeobject.c:1170:9: runtime error: left shift of negative value -3
    Objects/exceptions.c:662:5: runtime error: left shift of negative value -2
    Objects/exceptions.c:1010:5: runtime error: left shift of negative value -2
    Objects/exceptions.c:513:5: runtime error: left shift of negative value -2
    ./Modules/_io/fileio.c:479:5: runtime error: left shift of negative value -2
    Objects/unicodeobject.c:15267:5: runtime error: left shift of negative value -3
    Objects/unicodeobject.c:15128:5: runtime error: left shift of negative value -2
    Objects/typeobject.c:6720:5: runtime error: left shift of negative value -2
    Objects/setobject.c:944:5: runtime error: left shift of negative value -3
    Objects/bytesobject.c:3006:5: runtime error: left shift of negative value -3
    Objects/bytesobject.c:2869:5: runtime error: left shift of negative value -2
    Objects/bytearrayobject.c:3094:5: runtime error: left shift of negative value -3
    Objects/bytearrayobject.c:2959:5: runtime error: left shift of negative value -2
    Objects/descrobject.c:1001:9: runtime error: left shift of negative value -3
    Objects/descrobject.c:873:5: runtime error: left shift of negative value -2
    Modules/gcmodule.c:861:13: runtime error: left shift of negative value -3
    Objects/typeobject.c:2865:5: runtime error: left shift of negative value -2
    Objects/iterobject.c:26:5: runtime error: left shift of negative value -3
    Objects/iterobject.c:33:5: runtime error: left shift of negative value -2
    Objects/dictobject.c:2643:9: runtime error: left shift of negative value -2
    Objects/descrobject.c:1262:9: runtime error: left shift of negative value -3
    Objects/memoryobject.c:74:5: runtime error: left shift of negative value -3
    Objects/memoryobject.c:639:5: runtime error: left shift of negative value -3
    running build
    Objects/memoryobject.c:1060:5: runtime error: left shift of negative value -2
    Objects/memoryobject.c:108:5: runtime error: left shift of negative value -2
    running build_ext
    ./Modules/_io/bufferedio.c:402:5: runtime error: left shift of negative value -2
    ./Modules/_io/textio.c:1156:5: runtime error: left shift of negative value -2
    INFO: Can't locate Tcl/Tk libs and/or headers
    Objects/tupleobject.c:878:9: runtime error: left shift of negative value -2
    Objects/tupleobject.c:896:5: runtime error: left shift of negative value -3

    @JeffreyWalton JeffreyWalton mannequin added build The build process and cross-build type-bug An unexpected behavior, bug, or error labels Mar 15, 2014
    @python-dev
    Copy link
    Mannequin

    python-dev mannequin commented Mar 15, 2014

    New changeset e68f156ea0e6 by Benjamin Peterson in branch 'default':
    cast negative numbers to size_t before shifting them (bpo-20929)
    http://hg.python.org/cpython/rev/e68f156ea0e6

    @benjaminp
    Copy link
    Contributor

    Thanks for the report. Could you check if the current "default" branch of mercurial fixes the problems?

    @JeffreyWalton
    Copy link
    Mannequin Author

    JeffreyWalton mannequin commented Mar 15, 2014

    Could you check if the current "default" branch of mercurial fixes the problems?

    Checkout is complete. Working through a build now.

    Could you look at http://bugs.python.org/issue20930 and advise on the best way to proceed?

    @JeffreyWalton
    Copy link
    Mannequin Author

    JeffreyWalton mannequin commented Mar 15, 2014

    The big list of issues earlier has been parred down to the following after make:

    Objects/longobject.c:40:42: runtime error: index -3 out of bounds for type 'PyLongObject [262]'
    Objects/listobject.c:2046:22: runtime error: index 623 out of bounds for type 'PyObject *[256]'
    Objects/longobject.c:40:42: runtime error: index -3 out of bounds for type 'PyLongObject [262]'

    make test still needs to be run.

    I'm going to open another bug report since this is a different branch. Is that OK?

    @benjaminp
    Copy link
    Contributor

    What branch are you building now?

    @JeffreyWalton
    Copy link
    Mannequin Author

    JeffreyWalton mannequin commented Mar 15, 2014

    What branch are you building now?

    Python 3.5 from hg clone http://hg.python.org/cpython.

    @JeffreyWalton
    Copy link
    Mannequin Author

    JeffreyWalton mannequin commented Mar 15, 2014

    Updated title to reflect Python 3.4-RC3.

    @JeffreyWalton JeffreyWalton mannequin changed the title Undefined behavior flagged by Clang 3.4 Undefined behavior flagged by Clang 3.4 (Python 3.4-RC3) Mar 15, 2014
    @benjaminp
    Copy link
    Contributor

    Well, that's 3.4.1 atm.

    @JeffreyWalton
    Copy link
    Mannequin Author

    JeffreyWalton mannequin commented Mar 15, 2014

    Well, that's 3.4.1 atm.

    My bad. I managed to download a file named Python-3.4.0rc3.tgz this morning (the tarball is still in my downloads). I'm not sure from where since http://www.python.org/download/ does not have it....

    @JeffreyWalton
    Copy link
    Mannequin Author

    JeffreyWalton mannequin commented Mar 15, 2014

    Also see http://bugs.python.org/issue20932.

    @benjaminp
    Copy link
    Contributor

    Okay, I think I fixed those bugs too on default.

    @JeffreyWalton
    Copy link
    Mannequin Author

    JeffreyWalton mannequin commented Mar 15, 2014

    On Fri, Mar 14, 2014 at 10:28 PM, Benjamin Peterson
    <report@bugs.python.org> wrote:

    Benjamin Peterson added the comment:

    Well, that's 3.4.1 atm.

    Here's why I got that stale version:
    https://www.google.com/search?q=download+python+3.4. The first hit is
    RC3.

    @benjaminp
    Copy link
    Contributor

    That's indeed the latest release, but the default branch will become 3.4.1.

    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    build The build process and cross-build type-bug An unexpected behavior, bug, or error
    Projects
    None yet
    Development

    No branches or pull requests

    1 participant