fritzkink
2023-12-26 c3a1193deaa3a46b90c82aa59a5acf9cff2942b4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
The change that added this code did not take Solaris only block (hidden
behind define macro) into consideration.
 
Should be reported upstream.
 
--- valgrind-3.22.0/coregrind/m_debuginfo/readelf.c
+++ valgrind-3.22.0/coregrind/m_debuginfo/readelf.c
@@ -2386,6 +2386,12 @@ Bool ML_(read_elf_debug_info) ( struct _
 
       /* Accept .data where mapped as rw (data), even if zero-sized */
       if (0 == VG_(strcmp)(name, ".data")) {
+        if (inrw2) {
+           inrw = inrw2;
+        } else {
+           inrw = inrw1;
+        }
+
 #        if defined(SOLARIS_PT_SUNDWTRACE_THRP)
          if ((size == VKI_PT_SUNWDTRACE_SIZE) && (svma == dtrace_data_vaddr)) {
             TRACE_SYMTAB("ignoring .data section for dtrace_data "
@@ -2393,12 +2399,6 @@ Bool ML_(read_elf_debug_info) ( struct _
          } else
 #        endif /* SOLARIS_PT_SUNDWTRACE_THRP */
 
-        if (inrw2) {
-           inrw = inrw2;
-        } else {
-           inrw = inrw1;
-        }
-
          if (inrw && !di->data_present) {
             di->data_present = True;
             di->data_svma = svma;