PR libfortran/32336
* m4/matmul.m4: When the dimension of b is incorrect,
raise a runtime error instead of a failed assertion.
* generated/matmul_i1.c: Regenerated.
* generated/matmul_i2.c: Regenerated.
* generated/matmul_i4.c: Regenerated.
* generated/matmul_i8.c: Regenerated.
* generated/matmul_i16.c: Regenerated.
* generated/matmul_r4.c: Regenerated.
* generated/matmul_r8.c: Regenerated.
* generated/matmul_r10.c: Regenerated.
* generated/matmul_r16.c: Regenerated.
2007-07-09 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32336
* gfortran.dg/matmul_5.f90: New test case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126498
138bc75d-0d04-0410-961f-
82ee72b054a4
+2007-07-09 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/32336
+ * gfortran.dg/matmul_5.f90: New test case.
+
2007-07-09 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.dg/fesd-any.c: Move to gcc.dg/debug/dwarf2 directory.
--- /dev/null
+! { dg-do run }
+! { dg-shouldfail "dimension of array B incorrect in MATMUL intrinsic" }
+program main
+ real, dimension(:,:), allocatable :: a
+ real, dimension(:), allocatable :: b
+ allocate (a(2,2), b(3))
+ call random_number(a)
+ call random_number(b)
+ print *,matmul(a,b)
+end program main
+! { dg-output "Fortran runtime error: dimension of array B incorrect in MATMUL intrinsic.*" }
+2007-07-09 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/32336
+ * m4/matmul.m4: When the dimension of b is incorrect,
+ raise a runtime error instead of a failed assertion.
+ * generated/matmul_i1.c: Regenerated.
+ * generated/matmul_i2.c: Regenerated.
+ * generated/matmul_i4.c: Regenerated.
+ * generated/matmul_i8.c: Regenerated.
+ * generated/matmul_i16.c: Regenerated.
+ * generated/matmul_r4.c: Regenerated.
+ * generated/matmul_r8.c: Regenerated.
+ * generated/matmul_r10.c: Regenerated.
+ * generated/matmul_r16.c: Regenerated.
+
2007-07-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/32678
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
- assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
+ if (count != b->dim[0].ubound + 1 - b->dim[0].lbound)
+ runtime_error ("dimension of array B incorrect in MATMUL intrinsic");
if (GFC_DESCRIPTOR_RANK (b) == 1)
{