Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
088b63ea
Commit
088b63ea
authored
Sep 12, 2019
by
Eric Snow
Committed by
GitHub
Sep 12, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bpo-36876: Fix the globals checker tool. (gh-16058)
parent
855df7f2
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
1123 additions
and
18 deletions
+1123
-18
TODO
TODO
+1072
-0
Tools/c-analyzer/c_globals/supported.py
Tools/c-analyzer/c_globals/supported.py
+43
-18
Tools/c-analyzer/known.tsv
Tools/c-analyzer/known.tsv
+8
-0
No files found.
TODO
0 → 100644
View file @
088b63ea
This diff is collapsed.
Click to expand it.
Tools/c-analyzer/c_globals/supported.py
View file @
088b63ea
...
@@ -253,25 +253,50 @@ def _is_vartype_okay(vartype, ignoredtypes=None):
...
@@ -253,25 +253,50 @@ def _is_vartype_okay(vartype, ignoredtypes=None):
return
None
return
None
PYOBJECT_RE
=
re
.
compile
(
r'''
^
(
# must start with "static "
static \
s+
(
identifier
)
\b
) |
(
# may start with "static "
( static \
s+ )?
(
.*
(
PyObject |
PyTypeObject |
_? Py \
w+ O
bject |
_PyArg_Parser |
_Py_Identifier |
traceback_t |
PyAsyncGenASend |
_PyAsyncGenWrappedValue |
PyContext |
method_cache_entry
)
\b
) |
(
(
_Py_IDENTIFIER |
_Py_static_string
)
[(]
)
)
'''
,
re
.
VERBOSE
)
def
_is_object
(
vartype
):
def
_is_object
(
vartype
):
if
re
.
match
(
r'.*\bPy\
w*O
bject\b'
,
vartype
):
if
'PyDictKeysObject'
in
vartype
:
return
True
return
False
if
'_PyArg_Parser '
in
vartype
:
if
PYOBJECT_RE
.
match
(
vartype
):
return
True
if
vartype
.
startswith
((
'_Py_IDENTIFIER('
,
'static _Py_Identifier'
,
'_Py_static_string('
)):
return
True
if
'traceback_t'
in
vartype
:
return
True
if
'PyAsyncGenASend'
in
vartype
:
return
True
if
'_PyAsyncGenWrappedValue'
in
vartype
:
return
True
if
'PyContext'
in
vartype
:
return
True
if
'method_cache_entry'
in
vartype
:
return
True
if
vartype
.
startswith
(
'static identifier '
):
return
True
return
True
if
vartype
.
endswith
((
' _Py_FalseStruct'
,
' _Py_TrueStruct'
)):
if
vartype
.
endswith
((
' _Py_FalseStruct'
,
' _Py_TrueStruct'
)):
return
True
return
True
...
...
Tools/c-analyzer/known.tsv
View file @
088b63ea
...
@@ -787,6 +787,8 @@ Objects/genobject.c - _PyAsyncGenAThrow_Type variable PyTypeObject _PyAsyncGenAT
...
@@ -787,6 +787,8 @@ Objects/genobject.c - _PyAsyncGenAThrow_Type variable PyTypeObject _PyAsyncGenAT
Objects/genobject.c - PyAsyncGen_Type variable PyTypeObject PyAsyncGen_Type
Objects/genobject.c - PyAsyncGen_Type variable PyTypeObject PyAsyncGen_Type
Objects/genobject.c - _PyAsyncGenWrappedValue_Type variable PyTypeObject _PyAsyncGenWrappedValue_Type
Objects/genobject.c - _PyAsyncGenWrappedValue_Type variable PyTypeObject _PyAsyncGenWrappedValue_Type
Objects/typeobject.c - PyBaseObject_Type variable PyTypeObject PyBaseObject_Type
Objects/typeobject.c - PyBaseObject_Type variable PyTypeObject PyBaseObject_Type
Modules/_blake2/blake2b_impl.c - PyBlake2_BLAKE2bType variable PyTypeObject PyBlake2_BLAKE2bType
Modules/_blake2/blake2s_impl.c - PyBlake2_BLAKE2sType variable PyTypeObject PyBlake2_BLAKE2sType
Objects/boolobject.c - PyBool_Type variable PyTypeObject PyBool_Type
Objects/boolobject.c - PyBool_Type variable PyTypeObject PyBool_Type
Modules/_io/bufferedio.c - PyBufferedIOBase_Type variable PyTypeObject PyBufferedIOBase_Type
Modules/_io/bufferedio.c - PyBufferedIOBase_Type variable PyTypeObject PyBufferedIOBase_Type
Modules/_io/bufferedio.c - PyBufferedRandom_Type variable PyTypeObject PyBufferedRandom_Type
Modules/_io/bufferedio.c - PyBufferedRandom_Type variable PyTypeObject PyBufferedRandom_Type
...
@@ -972,6 +974,7 @@ Objects/exceptions.c - PyExc_Warning variable static PyTypeObject PyExc_Warning
...
@@ -972,6 +974,7 @@ Objects/exceptions.c - PyExc_Warning variable static PyTypeObject PyExc_Warning
Objects/exceptions.c - _PyExc_ZeroDivisionError variable static PyTypeObject _PyExc_ZeroDivisionError
Objects/exceptions.c - _PyExc_ZeroDivisionError variable static PyTypeObject _PyExc_ZeroDivisionError
Objects/exceptions.c - PyExc_ZeroDivisionError variable static PyTypeObject PyExc_ZeroDivisionError
Objects/exceptions.c - PyExc_ZeroDivisionError variable static PyTypeObject PyExc_ZeroDivisionError
Objects/boolobject.c - _Py_FalseStruct variable static struct _longobject _Py_FalseStruct
Objects/boolobject.c - _Py_FalseStruct variable static struct _longobject _Py_FalseStruct
Objects/tupleobject.c - _Py_fast_tuple_allocs variable Py_ssize_t _Py_fast_tuple_allocs
Objects/stringlib/unicode_format.h - PyFieldNameIter_Type variable static PyTypeObject PyFieldNameIter_Type
Objects/stringlib/unicode_format.h - PyFieldNameIter_Type variable static PyTypeObject PyFieldNameIter_Type
Modules/_io/fileio.c - PyFileIO_Type variable PyTypeObject PyFileIO_Type
Modules/_io/fileio.c - PyFileIO_Type variable PyTypeObject PyFileIO_Type
Python/preconfig.c - Py_FileSystemDefaultEncodeErrors variable const char *Py_FileSystemDefaultEncodeErrors
Python/preconfig.c - Py_FileSystemDefaultEncodeErrors variable const char *Py_FileSystemDefaultEncodeErrors
...
@@ -1498,6 +1501,7 @@ Python/initconfig.c - Py_NoSiteFlag variable int Py_NoSiteFlag
...
@@ -1498,6 +1501,7 @@ Python/initconfig.c - Py_NoSiteFlag variable int Py_NoSiteFlag
Objects/object.c - _Py_NotImplementedStruct variable PyObject _Py_NotImplementedStruct
Objects/object.c - _Py_NotImplementedStruct variable PyObject _Py_NotImplementedStruct
Objects/object.c - _PyNotImplemented_Type variable PyTypeObject _PyNotImplemented_Type
Objects/object.c - _PyNotImplemented_Type variable PyTypeObject _PyNotImplemented_Type
Python/initconfig.c - Py_NoUserSiteDirectory variable int Py_NoUserSiteDirectory
Python/initconfig.c - Py_NoUserSiteDirectory variable int Py_NoUserSiteDirectory
Objects/bytesobject.c - _Py_null_strings variable Py_ssize_t _Py_null_strings
Objects/obmalloc.c - _PyObject variable static PyMemAllocatorEx _PyObject
Objects/obmalloc.c - _PyObject variable static PyMemAllocatorEx _PyObject
Objects/obmalloc.c - _PyObject_Arena variable static PyObjectArenaAllocator _PyObject_Arena
Objects/obmalloc.c - _PyObject_Arena variable static PyObjectArenaAllocator _PyObject_Arena
Objects/odictobject.c - PyODictItems_Type variable PyTypeObject PyODictItems_Type
Objects/odictobject.c - PyODictItems_Type variable PyTypeObject PyODictItems_Type
...
@@ -1506,6 +1510,7 @@ Objects/odictobject.c - PyODictKeys_Type variable PyTypeObject PyODictKeys_Type
...
@@ -1506,6 +1510,7 @@ Objects/odictobject.c - PyODictKeys_Type variable PyTypeObject PyODictKeys_Type
Objects/odictobject.c - PyODict_Type variable PyTypeObject PyODict_Type
Objects/odictobject.c - PyODict_Type variable PyTypeObject PyODict_Type
Objects/odictobject.c - PyODictValues_Type variable PyTypeObject PyODictValues_Type
Objects/odictobject.c - PyODictValues_Type variable PyTypeObject PyODictValues_Type
Python/fileutils.c - _Py_open_cloexec_works variable int _Py_open_cloexec_works
Python/fileutils.c - _Py_open_cloexec_works variable int _Py_open_cloexec_works
Objects/bytesobject.c - _Py_one_strings variable Py_ssize_t _Py_one_strings
Python/initconfig.c - Py_OptimizeFlag variable int Py_OptimizeFlag
Python/initconfig.c - Py_OptimizeFlag variable int Py_OptimizeFlag
Parser/myreadline.c - PyOS_InputHook variable int (*PyOS_InputHook)(void)
Parser/myreadline.c - PyOS_InputHook variable int (*PyOS_InputHook)(void)
Python/pylifecycle.c - _PyOS_mystrnicmp_hack variable int (*_PyOS_mystrnicmp_hack)(const char *, const char *, Py_ssize_t)
Python/pylifecycle.c - _PyOS_mystrnicmp_hack variable int (*_PyOS_mystrnicmp_hack)(const char *, const char *, Py_ssize_t)
...
@@ -1521,6 +1526,8 @@ Python/pathconfig.c - _Py_path_config variable _PyPathConfig _Py_path_config
...
@@ -1521,6 +1526,8 @@ Python/pathconfig.c - _Py_path_config variable _PyPathConfig _Py_path_config
Objects/picklebufobject.c - PyPickleBuffer_Type variable PyTypeObject PyPickleBuffer_Type
Objects/picklebufobject.c - PyPickleBuffer_Type variable PyTypeObject PyPickleBuffer_Type
Objects/descrobject.c - PyProperty_Type variable PyTypeObject PyProperty_Type
Objects/descrobject.c - PyProperty_Type variable PyTypeObject PyProperty_Type
Python/initconfig.c - Py_QuietFlag variable int Py_QuietFlag
Python/initconfig.c - Py_QuietFlag variable int Py_QuietFlag
Objects.longobject.c - _Py_quick_int_allocs variable Py_ssize_t _Py_quick_int_allocs
Objects.longobject.c - _Py_quick_new_int_allocs variable Py_ssize_t _Py_quick_new_int_allocs
Objects/rangeobject.c - PyRangeIter_Type variable PyTypeObject PyRangeIter_Type
Objects/rangeobject.c - PyRangeIter_Type variable PyTypeObject PyRangeIter_Type
Objects/rangeobject.c - PyRange_Type variable PyTypeObject PyRange_Type
Objects/rangeobject.c - PyRange_Type variable PyTypeObject PyRange_Type
Modules/_io/iobase.c - PyRawIOBase_Type variable PyTypeObject PyRawIOBase_Type
Modules/_io/iobase.c - PyRawIOBase_Type variable PyTypeObject PyRawIOBase_Type
...
@@ -1551,6 +1558,7 @@ Objects/obmalloc.c - _Py_tracemalloc_config variable struct _PyTraceMalloc_Confi
...
@@ -1551,6 +1558,7 @@ Objects/obmalloc.c - _Py_tracemalloc_config variable struct _PyTraceMalloc_Confi
Objects/boolobject.c - _Py_TrueStruct variable static struct _longobject _Py_TrueStruct
Objects/boolobject.c - _Py_TrueStruct variable static struct _longobject _Py_TrueStruct
Objects/tupleobject.c - PyTupleIter_Type variable PyTypeObject PyTupleIter_Type
Objects/tupleobject.c - PyTupleIter_Type variable PyTypeObject PyTupleIter_Type
Objects/tupleobject.c - PyTuple_Type variable PyTypeObject PyTuple_Type
Objects/tupleobject.c - PyTuple_Type variable PyTypeObject PyTuple_Type
Objects/tupleobject.c - _Py_tuple_zero_allocs variable Py_ssize_t _Py_tuple_zero_allocs
Objects/typeobject.c - PyType_Type variable PyTypeObject PyType_Type
Objects/typeobject.c - PyType_Type variable PyTypeObject PyType_Type
Python/initconfig.c - Py_UnbufferedStdioFlag variable int Py_UnbufferedStdioFlag
Python/initconfig.c - Py_UnbufferedStdioFlag variable int Py_UnbufferedStdioFlag
Python/pylifecycle.c - _Py_UnhandledKeyboardInterrupt variable int _Py_UnhandledKeyboardInterrupt
Python/pylifecycle.c - _Py_UnhandledKeyboardInterrupt variable int _Py_UnhandledKeyboardInterrupt
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment