aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/error.cc
diff options
context:
space:
mode:
authorMartin Uecker <uecker@tugraz.at>2024-09-17 11:37:29 +0200
committerMartin Uecker <uecker@gcc.gnu.org>2024-09-20 22:54:26 +0200
commit9227a64495d5594613604573b72422e8e3722fc5 (patch)
tree1fb8e36d5dde163ccbce59865902ed97ee02002d /gcc/fortran/error.cc
parent1f70503232d4183b4b58f2910c460569d05907b9 (diff)
downloadgcc-9227a64495d5594613604573b72422e8e3722fc5.zip
gcc-9227a64495d5594613604573b72422e8e3722fc5.tar.gz
gcc-9227a64495d5594613604573b72422e8e3722fc5.tar.bz2
c: fix crash when checking for compatibility of structures [PR116726]
When checking for compatibility of structure or union types in tagged_types_tu_compatible_p, restore the old value of the pointer to the top of the temporary cache after recursively calling comptypes_internal when looping over the members of a structure of union. While the next iteration of the loop overwrites the pointer, I missed the fact that it can be accessed again when types of function arguments are compared as part of recursive type checking and the function is entered again. PR c/116726 gcc/c/ChangeLog: * c-typeck.cc (tagged_types_tu_compatible_p): Restore value of the cache after recursing into comptypes_internal. gcc/testsuite/ChangeLog: * gcc.dg/pr116726.c: New test.
Diffstat (limited to 'gcc/fortran/error.cc')
0 files changed, 0 insertions, 0 deletions