mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-22 11:31:05 +08:00
[multiple changes]
2009-04-20 Arnaud Charlet <charlet@adacore.com> * gnat_ugn.texi: Fix typos. 2009-04-20 Robert Dewar <dewar@adacore.com> * debug.adb, gnat1drv.adb, sem_ch13.adb: Add circuitry to Validate_Unchecked_Warnings to suppress warnings about size or alignment or extra bits if either type involved has pragma Warnings (Off) set for the type entity. From-SVN: r146366
This commit is contained in:
parent
76974327ad
commit
9fcf2a0bdc
@ -1,3 +1,14 @@
|
||||
2009-04-20 Arnaud Charlet <charlet@adacore.com>
|
||||
|
||||
* gnat_ugn.texi: Fix typos.
|
||||
|
||||
2009-04-20 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* debug.adb, gnat1drv.adb, sem_ch13.adb: Add circuitry to
|
||||
Validate_Unchecked_Warnings to suppress warnings about size or
|
||||
alignment or extra bits if either type involved has pragma Warnings
|
||||
(Off) set for the type entity.
|
||||
|
||||
2009-04-19 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gcc-interface/trans.c (gigi): Make the special IA-64 descriptor type
|
||||
|
@ -91,7 +91,7 @@ package body Debug is
|
||||
-- dY Enable configurable run-time mode
|
||||
-- dZ Generate listing showing the contents of the dispatch tables
|
||||
|
||||
-- d.a
|
||||
-- d.a Force Target_Strict_Alignment mode to True
|
||||
-- d.b
|
||||
-- d.c Generate inline concatenation, do not call procedure
|
||||
-- d.d
|
||||
@ -498,6 +498,10 @@ package body Debug is
|
||||
-- - In case of abstract subprograms the text "is abstract" is
|
||||
-- added at the end of the line.
|
||||
|
||||
-- d.a Force Target_Strict_Alignment to True, even on targets where it
|
||||
-- would normally be false. Can be used for testing strict alignment
|
||||
-- circuitry in the compiler.
|
||||
|
||||
-- d.c Generate inline concatenation, instead of calling one of the
|
||||
-- System.Concat_n.Str_Concat_n routines in cases where the latter
|
||||
-- routines would normally be called.
|
||||
|
@ -339,6 +339,12 @@ begin
|
||||
List_Representation_Info_Mechanisms := True;
|
||||
end if;
|
||||
|
||||
-- Force Target_Strict_Alignment true if debug flag -gnatd.a is set
|
||||
|
||||
if Debug_Flag_Dot_A then
|
||||
Ttypes.Target_Strict_Alignment := True;
|
||||
end if;
|
||||
|
||||
-- Disable static allocation of dispatch tables if -gnatd.t or if layout
|
||||
-- is enabled. The front end's layout phase currently treats types that
|
||||
-- have discriminant-dependent arrays as not being static even when a
|
||||
|
@ -22263,8 +22263,8 @@ headers which is intended to do 95% of the tedious work of generating
|
||||
Ada specs from C or C++ header files. Note that this still is a work in
|
||||
progress, not designed to generate 100% correct Ada specs.
|
||||
|
||||
Note that the code generated is using the Ada 2005 syntax, which makes it
|
||||
easier to inteface with other languages than previous versions of Ada.
|
||||
The code generated is using the Ada 2005 syntax, which makes it
|
||||
easier to interface with other languages than previous versions of Ada.
|
||||
|
||||
@menu
|
||||
* Running the binding generator::
|
||||
@ -22286,8 +22286,8 @@ $ g++ -c -fdump-ada-spec -C /usr/include/time.h
|
||||
$ gcc -c -gnat05 *.ads
|
||||
@end smallexample
|
||||
|
||||
will generate, under GNU/Linux, the following files: @file{bits_time_h.ads},
|
||||
@code{bits_types_h.ads}, @code{stddef_h.ads}, @code{time_h.ads} which
|
||||
will generate, under GNU/Linux, the following files: @file{time_h.ads},
|
||||
@file{bits_time_h.ads}, @file{stddef_h.ads}, @file{bits_types_h.ads} which
|
||||
correspond to the files @file{/usr/include/time.h},
|
||||
@file{/usr/include/bits/time.h}, etc@dots{}, and will then compile in Ada 2005
|
||||
mode these Ada specs.
|
||||
@ -22333,7 +22333,7 @@ procedure foo (variable : int);
|
||||
@end smallexample
|
||||
|
||||
In some cases, the generated bindings will be more complete or more meaningful
|
||||
when defining some macros, which you can do via the @option{-D} switch. this
|
||||
when defining some macros, which you can do via the @option{-D} switch. This
|
||||
is for example the case with @file{Xlib.h} under GNU/Linux:
|
||||
|
||||
@smallexample
|
||||
@ -22347,7 +22347,7 @@ In other cases, it is not possible to parse a header file in a stand alone
|
||||
manner, because other include files need to be included first. In this
|
||||
case, the solution is to create a small header file including the needed
|
||||
@code{#include} and possible @code{#define} directives. For example, to
|
||||
generate Ada bindings for @file{readline/readlin.h}, you need to first
|
||||
generate Ada bindings for @file{readline/readline.h}, you need to first
|
||||
include @file{stdio.h}, so you can create a file with the following two
|
||||
lines in e.g. @file{readline1.h}:
|
||||
|
||||
@ -22390,7 +22390,7 @@ Generate Ada spec files for the header files specified on the command line
|
||||
only.
|
||||
|
||||
@item -C
|
||||
@item @option{-C} (@command{gcc})
|
||||
@cindex @option{-C} (@command{gcc})
|
||||
Extract comments from headers and generate Ada comments in the Ada spec files.
|
||||
@end table
|
||||
|
||||
|
@ -4476,6 +4476,14 @@ package body Sem_Ch13 is
|
||||
if Serious_Errors_Detected = 0
|
||||
and then Known_Static_RM_Size (Source)
|
||||
and then Known_Static_RM_Size (Target)
|
||||
|
||||
-- Don't do the check if warnings off for either type, note the
|
||||
-- deliberate use of OR here instead of OR ELSE to get the flag
|
||||
-- Warnings_Off_Used set for both types if appropriate.
|
||||
|
||||
and then not (Has_Warnings_Off (Source)
|
||||
or
|
||||
Has_Warnings_Off (Target))
|
||||
then
|
||||
Source_Siz := RM_Size (Source);
|
||||
Target_Siz := RM_Size (Target);
|
||||
@ -4568,6 +4576,20 @@ package body Sem_Ch13 is
|
||||
begin
|
||||
if Source_Align < Target_Align
|
||||
and then not Is_Tagged_Type (D_Source)
|
||||
|
||||
-- Suppress warning if warnings suppressed on either
|
||||
-- type or either designated type. Note the use of
|
||||
-- OR here instead of OR ELSE. That is intentional,
|
||||
-- we would like to set flag Warnings_Off_Used in
|
||||
-- all types for which warnings are suppressed.
|
||||
|
||||
and then not (Has_Warnings_Off (D_Source)
|
||||
or
|
||||
Has_Warnings_Off (D_Target)
|
||||
or
|
||||
Has_Warnings_Off (Source)
|
||||
or
|
||||
Has_Warnings_Off (Target))
|
||||
then
|
||||
Error_Msg_Uint_1 := Target_Align;
|
||||
Error_Msg_Uint_2 := Source_Align;
|
||||
@ -4576,12 +4598,9 @@ package body Sem_Ch13 is
|
||||
Error_Msg
|
||||
("?alignment of & (^) is stricter than " &
|
||||
"alignment of & (^)!", Eloc);
|
||||
|
||||
if All_Errors_Mode then
|
||||
Error_Msg
|
||||
("\?resulting access value may have invalid " &
|
||||
"alignment!", Eloc);
|
||||
end if;
|
||||
Error_Msg
|
||||
("\?resulting access value may have invalid " &
|
||||
"alignment!", Eloc);
|
||||
end if;
|
||||
end;
|
||||
end if;
|
||||
|
Loading…
x
Reference in New Issue
Block a user