aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVladislav Ivanishin <vlad@ispras.ru>2019-07-14 13:19:29 +0000
committerVladislav Ivanishin <vlad@gcc.gnu.org>2019-07-14 13:19:29 +0000
commitcbfde6ee68dab649e3cf86b0ae569f2fc6ef3900 (patch)
tree6408bdd7b6dee2f8eb7217f571adce583f53a614 /gcc
parenta20f263ba1a76af40eb4e6734529739a2a30ed65 (diff)
downloadgcc-cbfde6ee68dab649e3cf86b0ae569f2fc6ef3900.zip
gcc-cbfde6ee68dab649e3cf86b0ae569f2fc6ef3900.tar.gz
gcc-cbfde6ee68dab649e3cf86b0ae569f2fc6ef3900.tar.bz2
gdbhooks.py: dump-fn, dot-fn: cast ret values of fopen/fclose
Work around the following (gdb) Python Exception <class 'gdb.error'> 'fclose@@GLIBC_2.2.5' has unknown return type; cast the call to its declared return type: (gdb) Error occurred in Python: 'fclose@@GLIBC_2.2.5' has unknown return type; cast the call to its declared return type This is due to GDB not being able to pick up and use the return types from debug info for external declarations. 2019-07-14 Vladislav Ivanishin <vlad@ispras.ru> * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of fopen and fclose to their respective types. (DotFn.invoke): Ditto. From-SVN: r273480
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/gdbhooks.py10
2 files changed, 10 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9b5cc7a..a9887b7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-07-14 Vladislav Ivanishin <vlad@ispras.ru>
+
+ * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of
+ fopen and fclose to their respective types.
+ (DotFn.invoke): Ditto.
+
2019-07-14 Jan Hubicka <hubicka@ucw.cz>
* ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index.
diff --git a/gcc/gdbhooks.py b/gcc/gdbhooks.py
index 191a5e2..09802c9 100644
--- a/gcc/gdbhooks.py
+++ b/gcc/gdbhooks.py
@@ -740,18 +740,17 @@ class DumpFn(gdb.Command):
f.close()
# Open file
- fp = gdb.parse_and_eval("fopen (\"%s\", \"w\")" % filename)
+ fp = gdb.parse_and_eval("(FILE *) fopen (\"%s\", \"w\")" % filename)
if fp == 0:
print ("Could not open file: %s" % filename)
return
- fp = "(FILE *)%u" % fp
# Dump function to file
_ = gdb.parse_and_eval("dump_function_to_file (%s, %s, %u)" %
(func, fp, flags))
# Close file
- ret = gdb.parse_and_eval("fclose (%s)" % fp)
+ ret = gdb.parse_and_eval("(int) fclose (%s)" % fp)
if ret != 0:
print ("Could not close file: %s" % filename)
return
@@ -810,11 +809,10 @@ class DotFn(gdb.Command):
# Close and reopen temp file to get C FILE*
f.close()
- fp = gdb.parse_and_eval("fopen (\"%s\", \"w\")" % filename)
+ fp = gdb.parse_and_eval("(FILE *) fopen (\"%s\", \"w\")" % filename)
if fp == 0:
print("Cannot open temp file")
return
- fp = "(FILE *)%u" % fp
# Write graph to temp file
_ = gdb.parse_and_eval("start_graph_dump (%s, \"<debug>\")" % fp)
@@ -823,7 +821,7 @@ class DotFn(gdb.Command):
_ = gdb.parse_and_eval("end_graph_dump (%s)" % fp)
# Close temp file
- ret = gdb.parse_and_eval("fclose (%s)" % fp)
+ ret = gdb.parse_and_eval("(int) fclose (%s)" % fp)
if ret != 0:
print("Could not close temp file: %s" % filename)
return