This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Detect frame size overflow (2)


> This is OK for mainline.

Thanks for the quick review.

> I was wondering whether it would be possible to add a new gnat.dg/
> subdirectory to the current dejagnu testing infrastructure?  I notice
> that you even provide a nice Ada testcase with your posting, but
> because GCC's Ada testing currently just tracks the "official" ACATS
> testsuite, its difficult to add new tests not covered by ACATS
> functionality.

Absolutely. Long overdue. Laziness. Thanks for the sting. :-)

> Over the years hundreds of Ada test cases have been posted to gcc-patches,
> only to be lost to the mailing list archives.

"Hundreds" is a bit of an overstatement, "dozens" is more realistic I'd think.
I'll make a pass over the archives and try to rescue as many of them as I can.


I've attached the skeleton of the harness for gnat.dg.  Very limited for the 
time being, as it only supports dg-compile (and dg-assemble).  Tested on 
x86/Linux and x86-64/Linux.


2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>

ada/
	* Make-lang.in: Add check-gnat to lang_checks.
	Rename existing check-gnat into check-acats.

testsuite/

	* lib/gnat.exp: New driver.
	* lib/gnat-dg.exp: Likewise.
	* gnat.dg: New directory.
	* gnat.dg/dg.exp: New driver.
	* gnat.dg/frame_overflow.adb: New test.


-- 
Eric Botcazou
Index: Make-lang.in
===================================================================
--- Make-lang.in	(revision 111926)
+++ Make-lang.in	(working copy)
@@ -818,16 +818,18 @@ ada.stagefeedback: stagefeedback-start
 	-$(MV) ada/*$(objext) ada/*.ali ada/b_*.c stagefeedback/ada
 	-$(MV) ada/stamp-* stagefeedback/ada
 
-check-ada: check-gnat
+lang_checks += check-gnat
+
+check-ada: check-acats check-gnat
 
 ACATSDIR = $(TESTSUITEDIR)/ada/acats
 
-check-gnat:
+check-acats:
 	test -d $(ACATSDIR) || mkdir -p $(ACATSDIR)
 	testdir=`cd ${srcdir}/${ACATSDIR}; ${PWD_COMMAND}`; \
 	export testdir; cd $(ACATSDIR); $(SHELL) $${testdir}/run_acats $(CHAPTERS)
 
-.PHONY: check-gnat
+.PHONY: check-acats
 
 
 # Bootstrapping targets for just GNAT - use the same stage directories

Attachment: gnat.exp
Description: Text document

Attachment: gnat-dg.exp
Description: Text document

Attachment: dg.exp
Description: Text document

-- { dg-do compile }

procedure frame_overflow is

   type Bitpos_Range_T is new Positive;
   type Bitmap_Array_T is array (Bitpos_Range_T) of Boolean;

   type Bitmap_T is record
      Bits : Bitmap_Array_T := (others => False);
   end record;
   
   function -- { dg-error "too large" "" { target ilp32 } }
     Set_In (Bitmap : Bitmap_T; Bitpos : Bitpos_Range_T)  return Bitmap_T
   is
      Result: Bitmap_T := Bitmap;
   begin
      Result.Bits (Bitpos) := True;
      return Result;
   end;

   function -- { dg-error "too large" "" { target ilp32 } }
     Negate (Bitmap : Bitmap_T) return Bitmap_T is
      Result: Bitmap_T;
   begin
      for E in Bitpos_Range_T loop
	 Result.Bits (E) := not Bitmap.Bits (E);
      end loop;
      return Result;
  end;

begin
   null;
end;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]