From c46e6747af582f6ed1099b53df1241adefbcfd6c Mon Sep 17 00:00:00 2001
From: Eric Pouech <pouech-eric@wanadoo.fr>
Date: Wed, 2 Apr 2003 01:07:53 +0000
Subject: [PATCH] Added support for R types in stabs parsing.

---
 programs/winedbg/stabs.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/programs/winedbg/stabs.c b/programs/winedbg/stabs.c
index 204916740a1..0f6d2de2e0f 100644
--- a/programs/winedbg/stabs.c
+++ b/programs/winedbg/stabs.c
@@ -752,6 +752,31 @@ static int DEBUG_PTS_ReadTypedef(struct ParseTypedefData* ptd, const char* typen
                 }
             }
             break;
+        case 'R':
+            {
+                enum debug_type_basic basic = DT_BASIC_LAST;
+                int type, len, unk;
+                
+                PTS_ABORTIF(ptd, DEBUG_PTS_ReadNum(ptd, &type) == -1);
+                PTS_ABORTIF(ptd, *ptd->ptr++ != ';');	/* ';' */
+                PTS_ABORTIF(ptd, DEBUG_PTS_ReadNum(ptd, &len) == -1);
+                PTS_ABORTIF(ptd, *ptd->ptr++ != ';');	/* ';' */
+                PTS_ABORTIF(ptd, DEBUG_PTS_ReadNum(ptd, &unk) == -1);
+                PTS_ABORTIF(ptd, *ptd->ptr++ != ';');	/* ';' */
+
+                switch (type)
+                {
+                case 1: basic = DT_BASIC_FLOAT; break;
+                case 2: basic = DT_BASIC_DOUBLE; break;
+                case 3: basic = DT_BASIC_CMPLX_FLOAT; break;
+                case 4: basic = DT_BASIC_CMPLX_DOUBLE; break;
+                case 5: basic = DT_BASIC_CMPLX_LONGDOUBLE; break;
+                case 6: basic = DT_BASIC_LONGDOUBLE; break;
+                default: PTS_ABORTIF(ptd, 1);
+                }
+                PTS_ABORTIF(ptd, !(new_dt = DEBUG_GetBasicType(basic)));
+            }
+            break;
 	default:
 	    DEBUG_Printf(DBG_CHN_MESG, "Unknown type '%c'\n", ptd->ptr[-1]);
 	    return -1;
-- 
GitLab