Commit e3f94155 by Arnaud Charlet

[multiple changes]

2015-11-12  Jerome Lambourg  <lambourg@adacore.com>

	* init.c: Do not try to mess with the MSR values in RTP mode:
	not needed and forbidden.

2015-11-12  Ed Schonberg  <schonberg@adacore.com>

	* exp_attr.adb (Compile_Stream_Body_In_Scope): Do not install
	full view of a type that has pragma Stream_Convert, because
	this indicates special processing for the stream operations of
	the type.

From-SVN: r230240
parent 31101470
2015-11-12 Jerome Lambourg <lambourg@adacore.com>
* init.c: Do not try to mess with the MSR values in RTP mode:
not needed and forbidden.
2015-11-12 Ed Schonberg <schonberg@adacore.com>
* exp_attr.adb (Compile_Stream_Body_In_Scope): Do not install
full view of a type that has pragma Stream_Convert, because
this indicates special processing for the stream operations of
the type.
2015-11-12 Gary Dismukes <dismukes@adacore.com> 2015-11-12 Gary Dismukes <dismukes@adacore.com>
* exp_ch5.adb, sem_ch3.adb, exp_util.ads, inline.adb, freeze.adb, * exp_ch5.adb, sem_ch3.adb, exp_util.ads, inline.adb, freeze.adb,
......
...@@ -650,12 +650,19 @@ package body Exp_Attr is ...@@ -650,12 +650,19 @@ package body Exp_Attr is
-- The component type may be private, in which case we install its -- The component type may be private, in which case we install its
-- full view to compile the subprogram. -- full view to compile the subprogram.
-- The component type may be private, in which case we install its
-- full view to compile the subprogram. We do not do this if the
-- type has a Stream_Convert pragma, which indicates that there are
-- special stream-processing operations for that type (for example
-- Unbounded_String and its wide varieties).
Scop := Scope (C_Type); Scop := Scope (C_Type);
if Is_Private_Type (C_Type) if Is_Private_Type (C_Type)
and then Present (Full_View (C_Type)) and then Present (Full_View (C_Type))
and then not In_Open_Scopes (Scop) and then not In_Open_Scopes (Scop)
and then Ekind (Scop) = E_Package and then Ekind (Scop) = E_Package
and then No (Get_Stream_Convert_Pragma (C_Type))
then then
Install := True; Install := True;
end if; end if;
......
...@@ -1922,8 +1922,9 @@ __gnat_error_handler (int sig, siginfo_t *si, void *sc) ...@@ -1922,8 +1922,9 @@ __gnat_error_handler (int sig, siginfo_t *si, void *sc)
/* VxWorks on e500v2 clears the SPE bit of the MSR when entering CPU /* VxWorks on e500v2 clears the SPE bit of the MSR when entering CPU
exception state. To allow the handler and exception to work properly exception state. To allow the handler and exception to work properly
when they contain SPE instructions, we need to set it back before doing when they contain SPE instructions, we need to set it back before doing
anything else. */ anything else.
#if (CPU == PPCE500V2) || (CPU == PPC85XX) This mechanism is only need in kernel mode. */
#if !(defined (__RTP__) || defined (CERT)) && ((CPU == PPCE500V2) || (CPU == PPC85XX))
register unsigned msr; register unsigned msr;
/* Read the MSR value */ /* Read the MSR value */
asm volatile ("mfmsr %0" : "=r" (msr)); asm volatile ("mfmsr %0" : "=r" (msr));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment