aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/c-decl.c2
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/decl.c3
-rw-r--r--gcc/f/ChangeLog6
-rw-r--r--gcc/f/com.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtin-noret-2.x12
7 files changed, 25 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 660d0d6..7beb2fc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2003-04-17 Roger Sayle <roger@eyesopen.com>
+
+ PR c/10375
+ * c-decl.c (duplicate_decls): Preserve "const" and "noreturn"
+ function attributes.
+
2003-04-17 Janis Johnson <janis187@us.ibm.com>
* doc/sourcebuild.texi (Test Suites): Document support for testing
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 0614476..c852bd7 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -1377,6 +1377,8 @@ duplicate_decls (newdecl, olddecl, different_binding_level)
DECL_NO_LIMIT_STACK (newdecl) |= DECL_NO_LIMIT_STACK (olddecl);
DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (newdecl)
|= DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (olddecl);
+ TREE_THIS_VOLATILE (newdecl) |= TREE_THIS_VOLATILE (olddecl);
+ TREE_READONLY (newdecl) |= TREE_READONLY (olddecl);
DECL_IS_MALLOC (newdecl) |= DECL_IS_MALLOC (olddecl);
DECL_IS_PURE (newdecl) |= DECL_IS_PURE (olddecl);
}
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 093198c..05545f1 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2003-04-17 Roger Sayle <roger@eyesopen.com>
+
+ PR c/10375
+ * decl.c (duplicate_decls): Preserve "const", "noreturn" and
+ "nothrow" function attributes.
+
2003-04-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
PR c++/10347
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 33881d9..5abb3f4 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -3360,6 +3360,9 @@ duplicate_decls (tree newdecl, tree olddecl)
DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (newdecl)
|= DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (olddecl);
DECL_NO_LIMIT_STACK (newdecl) |= DECL_NO_LIMIT_STACK (olddecl);
+ TREE_THIS_VOLATILE (newdecl) |= TREE_THIS_VOLATILE (olddecl);
+ TREE_READONLY (newdecl) |= TREE_READONLY (olddecl);
+ TREE_NOTHROW (newdecl) |= TREE_NOTHROW (olddecl);
DECL_IS_MALLOC (newdecl) |= DECL_IS_MALLOC (olddecl);
DECL_IS_PURE (newdecl) |= DECL_IS_PURE (olddecl);
/* Keep the old RTL. */
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index 47240a4..2df580c 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,9 @@
+2003-04-17 Roger Sayle <roger@eyesopen.com>
+
+ PR c/10375
+ * com.c (duplicate_decls): Preserve "const" and "noreturn"
+ function attributes.
+
2003-04-13 Roger Sayle <roger@eyesopen.com>
* com.c (duplicate_decls): Preserve pure and malloc attributes.
diff --git a/gcc/f/com.c b/gcc/f/com.c
index 6c60644..c92786b 100644
--- a/gcc/f/com.c
+++ b/gcc/f/com.c
@@ -13335,6 +13335,8 @@ duplicate_decls (tree newdecl, tree olddecl)
{
DECL_STATIC_CONSTRUCTOR(newdecl) |= DECL_STATIC_CONSTRUCTOR(olddecl);
DECL_STATIC_DESTRUCTOR (newdecl) |= DECL_STATIC_DESTRUCTOR (olddecl);
+ TREE_THIS_VOLATILE (newdecl) |= TREE_THIS_VOLATILE (olddecl);
+ TREE_READONLY (newdecl) |= TREE_READONLY (olddecl);
DECL_IS_MALLOC (newdecl) |= DECL_IS_MALLOC (olddecl);
DECL_IS_PURE (newdecl) |= DECL_IS_PURE (olddecl);
}
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtin-noret-2.x b/gcc/testsuite/gcc.c-torture/execute/builtin-noret-2.x
deleted file mode 100644
index 7926a94..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/builtin-noret-2.x
+++ /dev/null
@@ -1,12 +0,0 @@
-# This test fails at -O1 and higher.
-set torture_eval_before_compile {
- global compiler_conditional_xfail_data
- set compiler_conditional_xfail_data {
- "Fails at all optimization levels but -O0, see PR10375." \
- { "*-*-*" } \
- { "-O*" } \
- { "-O0" }
- }
-}
-
-return 0