+2014-08-01 Javier Miranda <miranda@adacore.com>
+
+ * gnat1drv.adb (Adjust_Global_Switches): Reverse meaning of
+ -gnatd.z.
+ * debug.adb: Updating documentation.
+ * exp_ch6.adb (Expand_Call): Remove assertion.
+
2014-08-01 Robert Dewar <dewar@adacore.com>
* sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_util.adb,
-- d.w Do not check for infinite loops
-- d.x No exception handlers
-- d.y
- -- d.z Enable new support for backend inlining
+ -- d.z Disable support for back end inlining
-- d.A Read/write Aspect_Specifications hash table to tree
-- d.B
-- fully compiled and analyzed, they just get eliminated from the
-- code generation step.
- -- d.z Enable back end inlining on targets that have the GCC backend (ie.
- -- all targets except AAMP, .NET and JVM). This switch has no effect
- -- under GNATprove to avoid confusing the formal verification output,
- -- and it has no effect if the sources are compiled with frontend
- -- inlining (ie. -gnatN). This switch is used to evaluate the impact
- -- of back end inlining since the GCC backend has now more support for
- -- inlining than before, and hence most of the inlinings that are
- -- currently handled by the frontend can be done by the backend with
- -- the extra benefit of supporting cases which are currently rejected
- -- by GNAT.
+ -- d.z Disable back end inlining. Back end inlining is enabled by default
+ -- on targets that have the GCC backend (ie. all targets except AAMP,
+ -- .NET and JVM). Back end inlining has no effect under GNATprove to
+ -- avoid confusing the formal verification output, and it is disabled
+ -- if the sources are compiled with frontend inlining (ie. -gnatN) to
+ -- minimize the output differences to customers still using this
+ -- deprecated switch. The flag .z facilitates disabling the back end
+ -- inlining in case of unexpected problems.
-- d.A There seems to be a problem with ASIS if we activate the circuit
-- for reading and writing the aspect specification hash table, so
Add_Inlined_Body (Subp);
Register_Backend_Call (Call_Node);
- -- Frontend expands supported functions returning unconstrained types
+ -- Frontend expansion of supported functions returning unconstrained
+ -- types and simple renamings inlined by the frontend (see Freeze.
+ -- Build_Renamed_Entity).
else
- pragma Assert (Ekind (Subp) = E_Function
- and then Returns_Unconstrained_Type (Subp));
-
declare
Spec : constant Node_Id := Unit_Declaration_Node (Subp);
and then not GNATprove_Mode
- -- No back end inlining if front end inlining explicitly enabled?
+ -- No back end inlining if front end inlining explicitly enabled.
+ -- Done to minimize the output differences to customers still using
+ -- this deprecated switch; in addition, this behavior reduces the
+ -- output differences in old tests.
and then not Front_End_Inlining
- -- For now, we only enable back end inlining if debug flag .z is set
+ -- Back end inlining is disabled if debug flag .z is set
- and then Debug_Flag_Dot_Z;
+ and then not Debug_Flag_Dot_Z;
-- Output warning if -gnateE specified and cannot be supported