aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2004-12-09 13:44:15 +0000
committerJakub Jelinek <jakub@redhat.com>2004-12-09 13:44:15 +0000
commitf650a7669ffc003536e3e4f1bdbf8ee2632cdc12 (patch)
tree866b796563fe9040efe0422f747289dd8bc814b2
parent1d1ce00e42bafecf0c3c04218bbda5c1f23046fc (diff)
cvs update -Pd -jgcc-3_4-branch:2004{1208,1209}
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcc-3_4-rhl-branch@91948 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/ia64/ia64.c11
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/name-lookup.c1
-rw-r--r--gcc/java/ChangeLog8
-rw-r--r--gcc/java/check-init.c5
-rw-r--r--gcc/java/java-tree.h3
-rw-r--r--gcc/java/parse.y9
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/version.c2
-rw-r--r--libjava/ChangeLog6
-rw-r--r--libstdc++-v3/include/bits/c++config2
12 files changed, 52 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 97bbe5916c5..b2b1fc173d2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-12-07 David Mosberger <davidm@hpl.hp.com>
+
+ PR target/18443
+ * config/ia64/ia64.c (ia64_assemble_integer): Add support for
+ emitting unaligned pointer-sized integers.
+
2004-11-26 Jakub Jelinek <jakub@redhat.com>
* builtins.c (expand_builtin): Handle BUILT_IN_{,V,F,VF}PRINTF_CHK.
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 2b990da81da..33ed0a67713 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -3321,15 +3321,16 @@ static bool
ia64_assemble_integer (rtx x, unsigned int size, int aligned_p)
{
if (size == POINTER_SIZE / BITS_PER_UNIT
- && aligned_p
&& !(TARGET_NO_PIC || TARGET_AUTO_PIC)
&& GET_CODE (x) == SYMBOL_REF
&& SYMBOL_REF_FUNCTION_P (x))
{
- if (POINTER_SIZE == 32)
- fputs ("\tdata4\t@fptr(", asm_out_file);
- else
- fputs ("\tdata8\t@fptr(", asm_out_file);
+ static const char * const directive[2][2] = {
+ /* 64-bit pointer */ /* 32-bit pointer */
+ { "\tdata8.ua\t@fptr(", "\tdata4.ua\t@fptr("}, /* unaligned */
+ { "\tdata8\t@fptr(", "\tdata4\t@fptr("} /* aligned */
+ };
+ fputs (directive[(aligned_p != 0)][POINTER_SIZE == 32], asm_out_file);
output_addr_const (asm_out_file, x);
fputs (")\n", asm_out_file);
return true;
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 64ba6d5e9f1..c0dfc2240ad 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2004-12-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/18100
+ * name-lookup.c (push_class_level_binding): Diagnose nested
+ class template with the same name as enclosing class.
+
2004-12-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
PR c++/17011, c++/17971
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index d627e0031af..0b6dddb0191 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -2804,6 +2804,7 @@ push_class_level_binding (tree name, tree x)
|| TREE_CODE (x) == CONST_DECL
|| (TREE_CODE (x) == TYPE_DECL
&& !DECL_SELF_REFERENCE_P (x))
+ || DECL_CLASS_TEMPLATE_P (x)
/* A data member of an anonymous union. */
|| (TREE_CODE (x) == FIELD_DECL
&& DECL_CONTEXT (x) != current_class_type))
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 59f7c2384b3..f2067b3da60 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,11 @@
+2004-12-07 Tom Tromey <tromey@redhat.com>
+
+ PR java/14853:
+ * java-tree.h (extract_field_decl): Declare.
+ * parse.y (extract_field_decl): Renamed from
+ strip_out_static_field_access_decl. No longer static.
+ * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
+
2004-11-04 Release Manager
* GCC 3.4.3 released.
diff --git a/gcc/java/check-init.c b/gcc/java/check-init.c
index c4e39484410..454aca5e19b 100644
--- a/gcc/java/check-init.c
+++ b/gcc/java/check-init.c
@@ -164,6 +164,11 @@ static void check_final_reassigned (tree, words);
static tree
get_variable_decl (tree exp)
{
+ /* A static field can be wrapped in a COMPOUND_EXPR where the first
+ argument initializes the class. */
+ if (TREE_CODE (exp) == COMPOUND_EXPR)
+ exp = extract_field_decl (exp);
+
if (TREE_CODE (exp) == VAR_DECL)
{
if (! TREE_STATIC (exp) || FIELD_FINAL (exp))
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h
index 22f41bd7523..64fb70a7440 100644
--- a/gcc/java/java-tree.h
+++ b/gcc/java/java-tree.h
@@ -1801,4 +1801,7 @@ enum
};
#undef DEBUG_JAVA_BINDING_LEVELS
+
+extern tree extract_field_decl (tree);
+
#endif /* ! GCC_JAVA_TREE_H */
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index eeda1afae56..dee92735871 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -259,7 +259,6 @@ static tree maybe_build_array_element_wfl (tree);
static int array_constructor_check_entry (tree, tree);
static const char *purify_type_name (const char *);
static tree fold_constant_for_init (tree, tree);
-static tree strip_out_static_field_access_decl (tree);
static jdeplist *reverse_jdep_list (struct parser_ctxt *);
static void static_ref_err (tree, tree, tree);
static void parser_add_interface (tree, tree, tree);
@@ -9512,12 +9511,12 @@ resolve_field_access (tree qual_wfl, tree *field_decl, tree *field_type)
return field_ref;
}
-/* If NODE is an access to f static field, strip out the class
+/* If NODE is an access to a static field, strip out the class
initialization part and return the field decl, otherwise, return
NODE. */
-static tree
-strip_out_static_field_access_decl (tree node)
+tree
+extract_field_decl (tree node)
{
if (TREE_CODE (node) == COMPOUND_EXPR)
{
@@ -14070,7 +14069,7 @@ patch_unaryop (tree node, tree wfl_op)
case PREINCREMENT_EXPR:
/* 15.14.2 Prefix Decrement Operator -- */
case PREDECREMENT_EXPR:
- op = decl = strip_out_static_field_access_decl (op);
+ op = decl = extract_field_decl (op);
outer_field_flag = outer_field_expanded_access_p (op, NULL, NULL, NULL);
/* We might be trying to change an outer field accessed using
access method. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 638b43ac97b..5a24c0b8fc5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2004-12-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/18100
+ * g++.dg/lookup/name-clash4.C: New test.
+
2004-11-26 Jakub Jelinek <jakub@redhat.com>
* gcc.c-torture/execute/printf-1.c: New test.
diff --git a/gcc/version.c b/gcc/version.c
index 2914062d01d..259f9773ca5 100644
--- a/gcc/version.c
+++ b/gcc/version.c
@@ -5,7 +5,7 @@
please modify this string to indicate that, e.g. by putting your
organization's name in parentheses at the end of the string. */
-const char version_string[] = "3.4.3 20041207 (Red Hat 3.4.3-8)";
+const char version_string[] = "3.4.3 20041208 (Red Hat 3.4.3-9)";
/* This is the location of the online document giving instructions for
reporting bugs. If you distribute a modified version of GCC,
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 573f764eb66..0d609ca83bb 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,9 @@
+2004-12-06 Tom Tromey <tromey@redhat.com>
+
+ For PR java/14853:
+ * testsuite/libjava.compile/PR14853.java: New file.
+ * testsuite/libjava.compile/PR14853.xfail: New file.
+
2004-11-17 Michael Koch <konqueror@gmx.de>
* java/net/URL.java (URL): Handle case when argument is null.
diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config
index aee47d95100..7a8ca88533b 100644
--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -35,7 +35,7 @@
#include <bits/os_defines.h>
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20041207
+#define __GLIBCXX__ 20041208
// Allow use of "export template." This is currently not a feature
// that g++ supports.