aboutsummaryrefslogtreecommitdiff
path: root/include/gcc-c-interface.h
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2024-02-22 19:34:23 -0700
committerTom Tromey <tom@tromey.com>2024-02-29 08:50:06 -0700
commitfd846abc2d0b9d7c9d4d2965a63b80ddc300b870 (patch)
tree3cb62fc7ea1c93b62e07e8573a87a6b01ca5adef /include/gcc-c-interface.h
parent46666b9bde5903d80ad8a30f5e7ecb6fc4208290 (diff)
downloadgcc-fd846abc2d0b9d7c9d4d2965a63b80ddc300b870.zip
gcc-fd846abc2d0b9d7c9d4d2965a63b80ddc300b870.tar.gz
gcc-fd846abc2d0b9d7c9d4d2965a63b80ddc300b870.tar.bz2
Change 'v1' float and int code to fall back to v0
While working on another patch, I discovered that the libcc1 plugin code never did version negotiation correctly. So, the patches to introduce v1 never did anything -- the new code, as far as I know, has never been run. Making version negotiation work shows that the existing code causes crashes. For example, safe_lookup_builtin_type might return error_mark_node in some cases, which the callers aren't prepared to accept. Looking into it some more, I couldn't find any justification for this v1 code for the C compiler plugin. Since it's not run at all, it's also clear that removing it doesn't cause any regressions in gdb. However, rather than remove it, this patch changes it to handle ERROR_MARK better, and then to fall back to the v0 code if the new code fails to find the type it's looking for. libcc1 * libcc1plugin.cc (safe_lookup_builtin_type): Handle ERROR_MARK. (plugin_int_type): Fall back to plugin_int_type_v0. (plugin_float_type): Fall back to plugin_float_type_v0.
Diffstat (limited to 'include/gcc-c-interface.h')
0 files changed, 0 insertions, 0 deletions