Eric Pouech : dbghelp: When the CU is compiled with GCC, deal with some GCC extensions.

Alexandre Julliard julliard at winehq.org
Mon Jun 29 09:17:45 CDT 2009


Module: wine
Branch: master
Commit: 7fbcd11db880d97898b7a27580c20a38e1432c19
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7fbcd11db880d97898b7a27580c20a38e1432c19

Author: Eric Pouech <eric.pouech at orange.fr>
Date:   Sun Jun 28 14:04:27 2009 +0200

dbghelp: When the CU is compiled with GCC, deal with some GCC extensions.

---

 dlls/dbghelp/dwarf.c |    4 +++-
 dlls/dbghelp/dwarf.h |   12 ++++++++++++
 2 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index 82e836f..7843e67 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -781,7 +781,9 @@ compute_location(dwarf2_traverse_context_t* ctx, struct location* loc,
             }
             break;
         default:
-            FIXME("Unhandled attr op: %x\n", op);
+            if (op < DW_OP_lo_user) /* as DW_OP_hi_user is 0xFF, we don't need to test against it */
+                FIXME("Unhandled attr op: %x\n", op);
+            /* FIXME else unhandled extension */
             return loc_err_internal;
         }
     }
diff --git a/dlls/dbghelp/dwarf.h b/dlls/dbghelp/dwarf.h
index e7a0a7e..a590df2 100644
--- a/dlls/dbghelp/dwarf.h
+++ b/dlls/dbghelp/dwarf.h
@@ -376,6 +376,18 @@ typedef enum dwarf_operation_e
   DW_OP_call2                           = 0x98,
   DW_OP_call4                           = 0x99,
   DW_OP_call_ref                        = 0x9a,
+  DW_OP_form_tls_address                = 0x9b,
+  DW_OP_call_frame_cfa                  = 0x9c,
+  DW_OP_bit_piece                       = 0x9d,
+
+  /* Implementation defined extensions */
+  DW_OP_lo_user                         = 0xe0,
+  DW_OP_hi_user                         = 0xff,
+
+  /* GNU extensions */
+  DW_OP_GNU_push_tls_address            = 0xe0,
+  DW_OP_GNU_uninit                      = 0xf0,
+  DW_OP_GNU_encoded_addr                = 0xf1,
 } dwarf_operation_t;
 
 enum dwarf_calling_convention




More information about the wine-cvs mailing list