summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dwarf2out.c21
-rw-r--r--gcc/fixinc/fixincl.x4
-rw-r--r--gcc/fixinc/inclhack.def4
4 files changed, 25 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cda4d6df33a..71a8c5e610c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-06-02 Tom Tromey <tromey@redhat.com>
+
+ * fixinc/fixincl.x: Rebuilt.
+ * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
+
2002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
config/i370:
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index f4b0ee7ff5d..12e9e8f3991 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -7656,16 +7656,27 @@ reg_loc_descriptor (rtl)
rtx rtl;
{
dw_loc_descr_ref loc_result = NULL;
- unsigned reg;
+ unsigned reg, i, max;
if (REGNO (rtl) >= FIRST_PSEUDO_REGISTER)
return 0;
reg = reg_number (rtl);
- if (reg <= 31)
- loc_result = new_loc_descr (DW_OP_reg0 + reg, 0, 0);
- else
- loc_result = new_loc_descr (DW_OP_regx, reg, 0);
+ max = HARD_REGNO_NREGS (reg, GET_MODE (rtl));
+ for (i = 0; i < max; ++i)
+ {
+ add_loc_descr (&loc_result,
+ new_loc_descr (reg <= 31 ? DW_OP_reg0 + reg : DW_OP_regx,
+ reg <= 31 ? 0 : reg,
+ 0));
+
+ if (max > 1)
+ add_loc_descr (&loc_result,
+ new_loc_descr (DW_OP_piece,
+ GET_MODE_SIZE (reg_raw_mode[reg]), 0));
+
+ ++reg;
+ }
return loc_result;
}
diff --git a/gcc/fixinc/fixincl.x b/gcc/fixinc/fixincl.x
index 968ae237c86..4cd9f63db3f 100644
--- a/gcc/fixinc/fixincl.x
+++ b/gcc/fixinc/fixincl.x
@@ -4587,7 +4587,7 @@ tSCC zThread_KeywordList[] =
* content selection pattern - do fix if pattern found
*/
tSCC zThread_KeywordSelect0[] =
- " __thread([,)])";
+ "([* ])__thread([,)])";
#define THREAD_KEYWORD_TEST_CT 1
static tTestDesc aThread_KeywordTests[] = {
@@ -4598,7 +4598,7 @@ static tTestDesc aThread_KeywordTests[] = {
*/
static const char* apzThread_KeywordPatch[] = {
"format",
- " __thr%1",
+ "%1__thr%2",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
diff --git a/gcc/fixinc/inclhack.def b/gcc/fixinc/inclhack.def
index 2ae1e56d221..c9617bd07d1 100644
--- a/gcc/fixinc/inclhack.def
+++ b/gcc/fixinc/inclhack.def
@@ -2892,9 +2892,9 @@ fix = {
hackname = thread_keyword;
files = "pthread.h";
files = "bits/sigthread.h";
- select = " __thread([,)])";
+ select = "([* ])__thread([,)])";
c_fix = format;
- c_fix_arg = " __thr%1";
+ c_fix_arg = "%1__thr%2";
test_text =
"extern int pthread_create (pthread_t *__restrict __thread,\n"