This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: PR 6212
--On Monday, May 06, 2002 05:49:22 PM -0400 Daniel Jacobowitz
<drow@mvista.com> wrote:
> On Mon, May 06, 2002 at 08:52:07AM -0700, Mark Mitchell wrote:
>>
>> > I get some strange error messages when I try to run the G++ testsuite,
>> > most likely because there's something I haven't fully recovered from
>> > backups yet. But it bootstraps and the C test are fine.
>>
>> That's good news, but this close to the release, "probably" isn't
>> good enough.
>>
>> Please figure out what's wrong with the G++ tests.
>
> Whatever it is, it is most likely local to Richard's setup. His patch
> has no effect on the C, C++, ObjC, Fortran, or Java testsuites on
> i686-pc-linux-gnu, at least.
Kenner sent me this patch as his complete fix for this problem, indicating
that he was not likely to get his machine set up so that it worked soon.
I can verify the patch on GNU/Linux, too. Is there someone who would
care to try this on a MIPS or Alpha box to confirm that it works OK
there? (Alpha was also affected by this problem.)
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
*** expr.c 16 Apr 2002 06:03:36 -0000 1.423.2.18
--- expr.c 6 May 2002 10:43:38 -0000
*************** static rtx store_field PARAMS ((rtx, HO
*** 147,151 ****
int));
static rtx var_rtx PARAMS ((tree));
! static HOST_WIDE_INT highest_pow2_factor PARAMS ((tree));
static int is_aligning_offset PARAMS ((tree, tree));
static rtx expand_increment PARAMS ((tree, int, int));
--- 147,151 ----
int));
static rtx var_rtx PARAMS ((tree));
! static unsigned HOST_WIDE_INT highest_pow2_factor PARAMS ((tree));
static int is_aligning_offset PARAMS ((tree, tree));
static rtx expand_increment PARAMS ((tree, int, int));
*************** check_max_integer_computation_mode (exp)
*** 5844,5852 ****
This is used in updating alignment of MEMs in array references. */
! static HOST_WIDE_INT
highest_pow2_factor (exp)
tree exp;
{
! HOST_WIDE_INT c0, c1;
switch (TREE_CODE (exp))
--- 5844,5852 ----
This is used in updating alignment of MEMs in array references. */
! static unsigned HOST_WIDE_INT
highest_pow2_factor (exp)
tree exp;
{
! unsigned HOST_WIDE_INT c0, c1;
switch (TREE_CODE (exp))
*************** highest_pow2_factor (exp)
*** 5903,5906 ****
--- 5903,5912 ----
c1 = highest_pow2_factor (TREE_OPERAND (exp, 2));
return MIN (c0, c1);
+
+ case PARM_DECL: case VAR_DECL: case RESULT_DECL:
+ /* If this is an object that is a pointer type, assume it is
+ properly aligned. */
+ if (POINTER_TYPE_P (TREE_TYPE (exp)))
+ return TYPE_ALIGN (TREE_TYPE (TREE_TYPE (exp)));
default: