diff options
author | Tom Tromey <tom@tromey.com> | 2023-10-17 14:32:26 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2023-10-19 16:51:29 -0600 |
commit | 379435351c807e5399ec3e9227d3019597ca2143 (patch) | |
tree | e4d34dbff6f69ed61deeeddd91f0d66f02f01b69 /gdb/dwarf2/index-write.c | |
parent | 1b1b9bc05f8f6cde3956fb4d08f734de438f02a7 (diff) | |
download | binutils-379435351c807e5399ec3e9227d3019597ca2143.zip binutils-379435351c807e5399ec3e9227d3019597ca2143.tar.gz binutils-379435351c807e5399ec3e9227d3019597ca2143.tar.bz2 |
Fix race in DWARF reader
The recent change to record the DWARF language in the per-CU data
yielded a race warning in my testing:
ThreadSanitizer: data race ../../binutils-gdb/gdb/dwarf2/read.c:21779 in prepare_one_comp_unit
This patch fixes the bug by applying the same style of fix that was
done for the ordinary (gdb) language.
I wonder if this code could be improved. Requiring an atomic for the
language in particular seems unfortunate, as it is often consulted
during index finalization. However, I haven't investigated this.
Regression tested on x86-64 Fedora 38.
Reviewed-by: Tom de Vries <tdevries@suse.de>
Diffstat (limited to 'gdb/dwarf2/index-write.c')
-rw-r--r-- | gdb/dwarf2/index-write.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/dwarf2/index-write.c b/gdb/dwarf2/index-write.c index bac4a6c..8c87f05 100644 --- a/gdb/dwarf2/index-write.c +++ b/gdb/dwarf2/index-write.c @@ -1205,7 +1205,7 @@ write_shortcuts_table (cooked_index *table, data_buf &shortcuts, if (main_info != nullptr) { - dw_lang = main_info->per_cu->dw_lang; + dw_lang = main_info->per_cu->dw_lang (); if (dw_lang != 0) { |