Commit Graph

182230 Commits

Author SHA1 Message Date
Nathan Sidwell
362303298a Add libcody
In order to separate compiler from build system, C++ Modules, as
implemented in GCC introduces a communication channel between those
two entities.  This is implemented by libcody.  It is anticipated that
other implementations will also implement this protocol, or use
libcody to provide it.

	* Makefile.def: Add libcody.
	* configure.ac: Add libcody.
	* Makefile.in: Regenerated.
	* configure: Regenerated.
	gcc/
	* Makefile.in (CODYINC, CODYLIB, CODYLIB_H): New. Use them.
	libcody/
	* configure.ac: New.
	* CMakeLists.txt: New.
	* CODING.md: New.
	* CONTRIB.md: New.
	* LICENSE: New.
	* LICENSE.gcc: New.
	* Makefile.in: New.
	* Makesub.in: New.
	* README.md: New.
	* buffer.cc: New.
	* build-aux/config.guess: New.
	* build-aux/config.sub: New.
	* build-aux/install-sh: New.
	* client.cc: New.
	* cmake/libcody-config-ix.cmake
	* cody.hh: New.
	* config.h.in: New.
	* config.m4: New.
	* configure: New.
	* configure.ac: New.
	* dox.cfg.in: New.
	* fatal.cc: New.
	* gdbinit.in: New.
	* internal.hh: New.
	* netclient.cc: New.
	* netserver.cc: New.
	* packet.cc: New.
	* resolver.cc: New.
	* server.cc: New.
	* tests/01-serialize/connect.cc: New.
	* tests/01-serialize/decoder.cc: New.
	* tests/01-serialize/encoder.cc: New.
	* tests/02-comms/client-1.cc: New.
	* tests/02-comms/pivot-1.cc: New.
	* tests/02-comms/server-1.cc: New.
	* tests/Makesub.in: New.
	* tests/jouster: New.
2020-12-15 07:09:59 -08:00
Nathan Sidwell
c5271279d6 Add toplevel dirs
contrib/
	* gcc-changelog/git_commit.py (changelog_locations): Add
	libcody, c++tools.
2020-12-15 09:51:50 -05:00
Nathan Sidwell
8dede24111 c++: module-related tweak
In manually applying a name-lookup patch, I managed to transpose two
calls.  That caused a test failure.  Fixed thusly.

	gcc/cp/
	* name-lookup.c (do_namespace_alias): Set originating module
	before pushing.
2020-12-15 04:43:58 -08:00
Marius Hillenbrand
7640db5711 libstdc++: Fix required locales of a testcase
The testsuite for libstdc++ aims to skips test cases for which not all
required locales are installed. This patch adds missing directives about
required locales to one test case to avoid false positive test failures
on systems that have a partial set of locales installed.

Verified by test suite runs that this patch changes the test case from
FAIL to UNSUPPORTED when not all required locales are available and that
the test case will run and PASS when the necessary locales have been
added.

libstdc++-v3/ChangeLog:

	* testsuite/22_locale/locale/cons/5.cc: Add missing directives
	for required locales.
2020-12-15 11:45:27 +00:00
Jonathan Wakely
fa452a843d libstdc++: Remove workaround for PR c++/78173
Now that the G++ bug is fixed we no longer need to protect this partial
specialization from complaining about subtracting void pointers.

libstdc++-v3/ChangeLog:

	* include/bits/iterator_concepts.h (incrementable_traits<Tp>):
	Remove workaround for PR c++/78173.
2020-12-15 11:45:27 +00:00
Vladimir Vishnevsky
a929b39aa3 libstdc++: Disabling AC_LIBTOOL_DLOPEN check if building with avr-libc
The AC_LIBTOOL_DLOPEN checks were previously disabled for newlib targets.
The patch applies similar logic to avr-libc based builds.

libstdc++-v3/ChangeLog:

	* configure.ac: Skip AC_LIBTOOL_DLOPEN check if avr-libc is used.
	* configure: Regenerate.
2020-12-15 11:45:26 +00:00
Jonathan Wakely
cf4ed3b415 libstdc++: Use init_priority attribute for Init object [PR 98108]
This causes the global objects that run the <iostream> initialization
code to be constructed earlier, which avoids some bugs in user code due
to incorrectly relying on static initialization order.

libstdc++-v3/ChangeLog:

	PR libstdc++/98108
	* include/std/iostream (__ioinit): Add init_priority attribute.
2020-12-15 11:45:26 +00:00
Pascal Obry
0feb237657 [Ada] Fix serial port baud rate setting on GNU/Linux
gcc/ada/

	* libgnat/g-sercom__linux.adb (Set): Use cfsetospeed and
	cfsetispeed to set the baud rate. Clear non-blocking serial port
	status when blocking is requested.
2020-12-15 06:41:57 -05:00
Eric Botcazou
2224729c89 [Ada] Small adjustment to System.Val_Real
gcc/ada/

	* libgnat/s-valrea.adb (Integer_to_Real): Always use Extra.
2020-12-15 06:41:57 -05:00
Piotr Trojanek
7d07d75d69 [Ada] Simplify check for extra parens
gcc/ada/

	* par-ch5.adb (P_Condition): Simplify condition for warning
	about extra parens and make it easier to understand.
2020-12-15 06:41:56 -05:00
Piotr Trojanek
3a6298d639 [Ada] Refactor repeated complains about missing -gnat2005 switch
gcc/ada/

	* errout.ads (Error_Msg_Ada_2005_Extension): New routine (spec).
	* errout.adb (Error_Msg_Ada_2005_Extension): New routine (body).
	* par-ch10.adb: Reuse new routine; correct casing for "LIMITED
	WITH".
	* par-ch11.adb: Likewise.
	* par-ch12.adb: Likewise.
	* par-ch3.adb: Likewise.
	* par-ch4.adb: Likewise; replace "box" with "<>".
	* par-ch6.adb: Likewise.
	* par-ch9.adb: Likewise; correct casing for "THEN ABORT".
2020-12-15 06:41:56 -05:00
Eric Botcazou
04974721ae [Ada] Small adjustment to parameterization of System.Value_R
gcc/ada/

	* doc/gnat_ugn/gnat_and_program_execution.rst: Minor fix.
	* gnat_ugn.texi: Regenerate.
	* libgnat/s-valuer.ads (Precision_Limit): New formal parameter.
	* libgnat/s-valuer.adb (Precision_Limit): Remove.
	(Scan_Decimal_Digits): Robustify overflow check.
	(Scan_Integral_Digits): Likewise.
	* libgnat/s-valrea.adb: Add assertion on the size of the unsigned
	type and instantiate System.Value_R with the mantissa limit.
	(Integer_to_Real): Add Extra parameter and take it into account.
	(Scan_Real): Pass Extra to Integer_to_Real.
	(Value_Real): Likewise.
	* libgnat/s-valued.adb: Add assertion on the size of the unsigned
	type and instantiate System.Value_R with the mantissa limit.
	* libgnat/s-valuef.adb: Likewise.
2020-12-15 06:41:56 -05:00
Justin Squirek
a1023434a8 [Ada] Postcondition checks performed before finalization
gcc/ada/

	* contracts.adb, contracts.ads (Build_Postconditions_Procedure):
	Add declarations for Postcond_Enabled,
	Result_Object_For_Postcondition, and
	Return_Success_For_Postcond, and place all postconditions within
	an if statement to control their execution for interactions when
	cleanup actions get generated.
	(Get_Postcond_Enabled): Created to fetch object declared to
	handle new expansion of postconditions.
	(Get_Result_Object_For_Postcond): Created to fetch object
	declared to handle new expansion of postconditions.
	(Get_Return_Success_For_Postcond): Created to fetch object
	declared to handle new expansion of postconditions.
	* einfo.adb, einfo.ads: Modify flag Stores_Attribute_Old_Prefix
	to apply to constants, variables, and types.
	* exp_ch6.adb (Add_Return): Add assignment to
	Return_Success_For_Postcond.
	(Expand_Non_Function_Return): Add assignment to
	Return_Success_For_Postcond
	(Expand_Simple_Function_Return): Add assignment to
	Result_Object_For_Postcond and Return_Success_For_Postcond.
	* exp_ch7.adb (Build_Finalization_Master): Mark finalization
	masters which finalize types created store 'Old objects as
	storing 'Old objects.
	(Build_Finalizer): Created to generated a unified and special
	expansion for finalization when postconditions are present.
	(Build_Finalizer_Helper): Renamed Build_Finalizer and added
	parameter to facilitate the creation of separate finalization
	routines for 'Old objects and general objects.
	(Create_Finalizer): Add condition for the insertion of the
	finalizer spec to avoid malformed trees.
	(Expand_Cleanup_Actions): Move _postconditions and related
	declarations to the new declarative section.  Fix the loop to
	properly stop at the subprogram declaration for the
	postconditions procedure and exclude its body from being moved
	to the new list of declarations to avoid freezing issues.
	* exp_prag.adb (Expand_Attributes): Mark temporary created to
	store 'Old objects as storing a 'Old attribute.
	* sem_ch6.adb (Find_What_Applies_To): Remove strange exception
	to postconditions when traversing the scope stack.
	* sem_prag.adb (Find_Related_Declaration_Or_Body): Use the newly
	created Enclosing_HSS function to find the HSS for a potentially
	nested statement.
	* sem_util.adb, sem_util.ads (Declare_Indirect_Temp): Mark types
	created to store 'Old objects as storing 'Old attributes.
	(Enclosing_HSS): Created to find the enclosing handled sequence
	of statements for a given statement.
	* snames.ads-tmpl: Add multiple names to aid in the expansion of
	finalization and to control the evaluation of postconditions.
	Including _finalization_controller, a new routine to centralize
	finalization actions and postcondition evaluation.
2020-12-15 06:41:56 -05:00
Piotr Trojanek
43852482ca [Ada] Complain about missing -gnat2020 switch on iterator_filter
gcc/ada/

	* par-ch5.adb (P_Loop_Parameter_Specification): Complain about
	missing -gnat2020 switch.
	(P_Iterator_Specification): Likewise.
2020-12-15 06:41:55 -05:00
Piotr Trojanek
320be7e2b4 [Ada] Reuse Append_New in parsing aggregates
gcc/ada/

	* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify with
	Append_New.
2020-12-15 06:41:55 -05:00
Eric Botcazou
338e513351 [Ada] Implement tiered support for floating-point input operations
gcc/ada/

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Remove s-fatsfl$(objext)
	and add s-valflt$(objext), s-vallfl$(objext), s-valllf$(objext).
	* exp_attr.adb (Find_Fat_Info): Merge Short_Float and Float cases.
	* exp_imgv.adb (Expand_Value_Attribute): Replace RE_Value_Real with
	RE_Value_Long_Long_Float for fixed-point types and use appropriate
	base type for floating-point types.
	* rtsfind.ads (RTU_Id): Remove System_Fat_IEEE_Long_Float,
	System_Fat_IEEE_Short_Float and System_Val_Real, add System_Val_Flt,
	System_Val_LFlt and System_Val_LLF.
	(RE_Id): Remove RE_Attr_IEEE_Long, RE_Fat_IEEE_Long,
	RE_Attr_IEEE_Short, RE_Fat_IEEE_Short, RE_Attr_Short_Float, add
	RE_Value_Float, RE_Value_Long_Float, RE_Value_Long_Long_Float,
	(RE_Unit_Table): Likewise.
	* libgnat/a-ticoau.ads: Add with clause for Float_Aux and make the
	package generic.
	(Get): Change parameter types to Num.
	(Put): Likewise.
	(Gets): Likewise.
	(Puts): Likewise.
	* libgnat/a-ticoau.adb: Remove clause and renaming for Float_Aux.
	(Get): Change parameter types to Num.
	(Gets): Likewise.
	(Put): Likewise.
	(Puts): Likewise.  Add conversion to Long_Long_Float.
	* libgnat/a-ticoio.adb: Remove with clause for Ada.Text_IO, add with
	clause for Float_Aux, add with and use clauses for System.Val_Flt,
	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux and
	Complex_Aux on Float, Long_Float, and Long_Long_Float.
	(OK_Float): New boolean constant.
	(OK_Long_Float): Likewise.
	(Get): Call appropriate Get routine from auxiliary package.
	(Get): Call appropriate Gets routine from auxiliary package.
	(Put): Call appropriate Put routine from auxiliary package.
	(Put): Call appropriate Puts routine from auxiliary package.
	* libgnat/a-tideau.adb: Remove with and use clause for Float_Aux.
	* libgnat/a-tifiau.adb: Likewise.
	* libgnat/a-tifiio.adb: Add with and use clause for System.Val_LLF.
	Instantiate Float_Aux on Long_Long_Float.
	(Get): Adjust call to Get routine from auxiliary package.
	(Get): Adjust call to Gets routine from auxiliary package.
	(Put): Adjust call to Put routine from auxiliary package.
	(Put): Adjust call to Puts routine from auxiliary package.
	* libgnat/a-tifiio__128.adb: Likewise.
	(Get): Likewise.
	(Get): Likewise.
	(Put): Likewise.
	(Put): Likewise.
	* libgnat/a-tiflau.ads: Make the package generic.
	(Get): Change parameter type to Num.
	(Put): Likewise.
	(Gets): Likewise.
	(Puts): Likewise.
	* libgnat/a-tiflau.adb: Remove clauses for System.Val_Real.
	(Get): Change parameter type to Num and call Scan routine.
	(Gets): Likewise.
	(Load_Real): Move to...
	(Put): Change parameter type and add conversion to Long_Long_Float.
	(Puts): Likewise.
	* libgnat/a-tiflio.adb: Add with and use clauses for System.Val_Flt,
	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
	Long_Float and Long_Long_Float.
	(OK_Float): New boolean constant.
	(OK_Long_Float): Likewise.
	(Get): Call appropriate Get routine from auxiliary package.
	(Get): Call previous variant.
	(Get): Call appropriate Gets routine from auxiliary package.
	(Put): Call appropriate Put routine from auxiliary package.
	(Put): Call previous variant.
	(Put): Call appropriate Puts routine from auxiliary package.
	* libgnat/a-tigeau.ads (Load_Real): New procedure.
	* libgnat/a-tigeau.adb (Load_Real): ...here.
	* libgnat/a-wtcoau.ads: Add with clause for Float_Aux and make the
	package generic.
	(Get): Change parameter types to Num.
	(Put): Likewise.
	(Gets): Likewise.
	(Puts): Likewise.
	* libgnat/a-wtcoau.adb: Remove clause and renaming for Float_Aux.
	(Get): Change parameter types to Num.
	(Gets): Likewise.
	(Put): Likewise.
	(Puts): Likewise.  Add conversion to Long_Long_Float.
	* libgnat/a-wtcoio.ads: Remove use clause for Complex_Types and use
	qualified names throughout accordingly.
	* libgnat/a-wtcoio.adb: Remove clause for Ada.Unchecked_Conversion,
	add with clause for Float_Aux, add clauses for System.Val_Flt,
	System.Val_LFlt and System.Val_LLF. Add clause for Complex_Types.
	Instantiate Float_Aux and Complex_Aux on Float, Long_Float, and
	Long_Long_Float.  Remove LLF subtype and TFT instantiation.
	(OK_Float): New boolean constant.
	(OK_Long_Float): Likewise.
	(Get): Call appropriate Get routine from auxiliary package.
	(Get): Call appropriate Gets routine from auxiliary package.
	(Put): Call appropriate Put routine from auxiliary package.
	(Put): Call appropriate Puts routine from auxiliary package.
	* libgnat/a-wtdeau.adb: Remove with and use clause for Float_Aux.
	* libgnat/a-wtfiau.adb: Likewise.
	* libgnat/a-wtfiio.adb: Add with and use clause for System.Val_LLF.
	Instantiate Float_Aux on Long_Long_Float.
	(Get): Adjust call to Get routine from auxiliary package.
	(Get): Adjust call to Gets routine from auxiliary package.
	(Put): Adjust call to Put routine from auxiliary package.
	(Put): Adjust call to Puts routine from auxiliary package.
	* libgnat/a-wtfiio__128.adb: Likewise.
	(Get): Likewise.
	(Get): Likewise.
	(Put): Likewise.
	(Put): Likewise.
	* libgnat/a-wtflau.ads: Make the package generic.
	(Get): Change parameter type to Num.
	(Put): Likewise.
	(Gets): Likewise.
	(Puts): Likewise.
	* libgnat/a-wtflau.adb: Remove clauses for System.Val_Real.
	(Get): Change parameter type to Num and call Scan routine. Set
	Ptr parameter lazily.
	(Gets): Likewise.
	(Load_Real): Move to...
	(Put): Change parameter type and add conversion to Long_Long_Float.
	Bump buffer length to Max_Real_Image_Length.
	(Puts): Likewise.
	* libgnat/a-wtflio.adb: Add with and use clauses for System.Val_Flt,
	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
	Long_Float and Long_Long_Float.
	(OK_Float): New boolean constant.
	(OK_Long_Float): Likewise.
	(Get): Call appropriate Get routine from auxiliary package.  Add
	pragma Unsuppress (Range_Check) and manual validity check.
	(Get): Call appropriate Gets routine from auxiliary package. Add
	pragma Unsuppress (Range_Check) and manual validity check.
	(Put): Call appropriate Put routine from auxiliary package.
	(Put): Call appropriate Puts routine from auxiliary package.
	* libgnat/a-wtgeau.ads (Load_Real): New procedure.
	* libgnat/a-wtgeau.adb (Load_Real): ...here.
	* libgnat/a-ztcoau.ads: Add with clause for Float_Aux and make the
	package generic.
	(Get): Change parameter types to Num.
	(Put): Likewise.
	(Gets): Likewise.
	(Puts): Likewise.
	* libgnat/a-ztcoau.adb: Remove clause and renaming for Float_Aux.
	(Get): Change parameter types to Num.
	(Gets): Likewise.
	(Put): Likewise.
	(Puts): Likewise.  Add conversion to Long_Long_Float.
	* libgnat/a-ztcoio.ads: Remove use clause for Complex_Types and use
	qualified names throughout accordingly.
	* libgnat/a-ztcoio.adb: Remove clause for Ada.Unchecked_Conversion,
	add with clause for Float_Aux, add clauses for System.Val_Flt,
	System.Val_LFlt and System.Val_LLF. Add clause for Complex_Types.
	Instantiate Float_Aux and Complex_Aux on Float, Long_Float, and
	Long_Long_Float. Remove LLF subtype and TFT instantiation.
	(OK_Float): New boolean constant.
	(OK_Long_Float): Likewise.
	(Get): Call appropriate Get routine from auxiliary package.
	(Get): Call appropriate Gets routine from auxiliary package.
	(Put): Call appropriate Put routine from auxiliary package.
	(Put): Call appropriate Puts routine from auxiliary package.
	* libgnat/a-ztdeau.adb: Remove with and use clause for Float_Aux.
	* libgnat/a-ztfiau.adb: Likewise.
	* libgnat/a-ztfiio.adb: Add with and use clause for System.Val_LLF.
	Instantiate Float_Aux on Long_Long_Float.
	(Get): Adjust call to Get routine from auxiliary package.
	(Get): Adjust call to Gets routine from auxiliary package.
	(Put): Adjust call to Put routine from auxiliary package.
	(Put): Adjust call to Puts routine from auxiliary package.
	* libgnat/a-ztfiio__128.adb: Likewise.
	(Get): Likewise.
	(Get): Likewise.
	(Put): Likewise.
	(Put): Likewise.
	* libgnat/a-ztflau.ads: Make the package generic.
	(Get): Change parameter type to Num.
	(Put): Likewise.
	(Gets): Likewise.
	(Puts): Likewise.
	* libgnat/a-ztflau.adb: Remove clauses for System.Val_Real.
	(Get): Change parameter type to Num and call Scan routine. Set
	Ptr parameter lazily.
	(Gets): Likewise.
	(Load_Real): Move to...
	(Put): Change parameter type and add conversion to Long_Long_Float.
	Bump buffer length to Max_Real_Image_Length.
	(Puts): Likewise.
	* libgnat/a-ztflio.adb: Add with and use clauses for System.Val_Flt,
	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
	Long_Float and Long_Long_Float.
	(OK_Float): New boolean constant.
	(OK_Long_Float): Likewise.
	(Get): Call appropriate Get routine from auxiliary package.  Add
	pragma Unsuppress (Range_Check) and manual validity check.
	(Get): Call appropriate Gets routine from auxiliary package. Add
	pragma Unsuppress (Range_Check) and manual validity check.
	(Put): Call appropriate Put routine from auxiliary package.
	(Put): Call appropriate Puts routine from auxiliary package.
	* libgnat/a-ztgeau.ads (Load_Real): New procedure.
	* libgnat/a-ztgeau.adb (Load_Real): ...here.
	* libgnat/s-fatsfl.ads: Delete.
	* libgnat/s-valflt.ads: New package.
	* libgnat/s-vallfl.ads: Likewise.
	* libgnat/s-valllf.ads: Likewise.
	* libgnat/s-valrea.ads: Make generic. Add assertions, defensive
	code and clarify intent.
	(Scan_Real): Change parameter type to Num.
	(Value_Real): Likewise.
	* libgnat/s-valrea.adb: Instantiate Value_R on Uns.
	(Integer_to_Real): Change parameter and result to Num.
	Call Float_Control.Reset only if the mantissa is 64 bits.  Use
	a divide to compute the final value if the scale is negative.
	(Scan_Real): Change result to Num.
	(Value_Real): Likewise.
	* libgnat/s-valuer.adb: Add assertions, defensive code and
	clarify intent.
	(F_Limit): Delete.
	(I_Limit): Likewise.
	(Precision_Limit): Always use the integer limit.
	* libgnat/s-fatgen.adb: Add pragma Annotate.
2020-12-15 06:41:55 -05:00
Yannick Moy
1851d3cef2 [Ada] Mark generic body outside of SPARK
gcc/ada/

	* libgnat/a-tiflio.adb: Mark body not in SPARK.
	* libgnat/a-tiflio.ads: Mark spec in SPARK.
2020-12-15 06:41:54 -05:00
Arnaud Charlet
d79e7af5ff [Ada] Transform_Function_Array issues
gcc/ada/

	* exp_ch6.adb (Build_Procedure_Body_Form): Adjust, the
	declaration of the procedure form is now insert before the
	original function body rather than after.
	(Expand_N_Subprogram_Declaration): Deal with private types whose
	full views are arrays.
	* exp_unst.adb (Unnest_Subprogram): Deal with private types.
	(Needs_Fat_Pointer): Code cleanup.
	* freeze.adb (Freeze_Subprogram): Ditto.
	* exp_util.adb (Build_Procedure_Form): Insert the procedure form
	decl before and not after.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build missing
	spec when needed for Transform_Function_Array.
	* sem_util.adb (Get_Fullest_View): Deal with null entity.
2020-12-15 06:41:54 -05:00
Piotr Trojanek
958eed88b9 [Ada] Simplify discarding nodes when processing aspect/pragma Priority
gcc/ada/

	* sem_ch13.adb (Analyze_Aspect_Specifications): Simplify code
	for aspect Priority.
	* sem_prag.adb (Analyze_Pragma): Simplify code for pragma
	Priority.
2020-12-15 06:41:54 -05:00
Arnaud Charlet
2e188579aa [Ada] Crash on unnesting unnamed blocks
gcc/ada/

	* exp_ch7.adb (Reset_Scopes_To_Block_Elab_Proc): Do not crash on
	a block with no Identifier. Code cleanups.
2020-12-15 06:41:54 -05:00
Piotr Trojanek
b230466388 [Ada] Refactor repeated code for Value attributes
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Reuse existing code for
	attribute Value when analyzing attributes Wide_Value and
	Wide_Wide_Value.
2020-12-15 06:41:53 -05:00
Pascal Obry
3a6021dc1d [Ada] Fix possible infinite recursion in directory iterator
gcc/ada/

	* libgnat/g-diopit.adb (Find): Fix possible infinite recursion
	in Find iterator.
	* libgnat/g-diopit.ads (Find): Update comments accordingly.
2020-12-15 06:41:53 -05:00
Piotr Trojanek
afed612dc5 [Ada] Refactor repeated code for Callable and Terminated attributes
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Callable and Terminated attributes; refactor calls to Set_Etype
	occurring in both THEN and ELSE branches of an IF statement for
	attribute Storage_Size.
2020-12-15 06:41:53 -05:00
Piotr Trojanek
ce20ff0260 [Ada] Refactor repeated code for Width attributes
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Wide_Wide_Width, Wide_Width and Width attributes.
2020-12-15 06:41:53 -05:00
Piotr Trojanek
bc57641099 [Ada] Refactor repeated code for Pred and Succ attributes
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Pred and Succ attributes.
2020-12-15 06:41:52 -05:00
Piotr Trojanek
7addd1cec7 [Ada] Refactor repeated code for size attributes
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Size, Object_Size and Value_Size attributes.
2020-12-15 06:41:52 -05:00
Piotr Trojanek
57d5ceda2f [Ada] Refactor repeated code for fixed point attributes
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Consistently call
	Check_Fixed_Point_Type before checking the number of attribute
	expressions (like it is done for floating point types); reuse
	Check_Fixed_Point_Type_0.
2020-12-15 06:41:52 -05:00
Piotr Trojanek
9c852dfb05 [Ada] Remove redundant calls to UI_To_Int in relational operands
gcc/ada/

	* exp_disp.adb (Make_Tags): Remove call to UI_To_Int.
	* sem_attr.adb (Check_Array_Type): Likewise; also, refine type
	of a local variable.
	(Analyze_Attribute): Likewise.
	(Get_Enclosing_Object): Likewise.
	* sem_util.adb (Get_Enum_Lit_From_Pos): Likewise.
2020-12-15 06:41:52 -05:00
Piotr Trojanek
10853d6e8a [Ada] Refactor repeated code for component attributes
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	First_Bit/Last_Bit and Position attributes.
2020-12-15 06:41:51 -05:00
Piotr Trojanek
cb84595d3f [Ada] Refactor repeated code for real type attributes returning integers
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Machine_Radix and Mantissa attributes.
2020-12-15 06:41:51 -05:00
Piotr Trojanek
f9c82ff431 [Ada] Refactor repeated code for real type attributes returning booleans
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Machine_Overflows and Machine_Rounds attributes.
2020-12-15 06:41:51 -05:00
Piotr Trojanek
4c11930d2e [Ada] Refactor repeated code for real type attributes returning reals
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Large, Small, Safe_Large and Safe_Small attributes.
2020-12-15 06:41:51 -05:00
Piotr Trojanek
156f9796d5 [Ada] Refactor repeated code for floating point attributes returning reals
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Epsilon, Model_Epsilon, Model_Small, Safe_First and Safe_Las
	attributes.
2020-12-15 06:41:50 -05:00
Piotr Trojanek
82b4bbb7a4 [Ada] Refactor repeated code for floating point attributes returning ints
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Emax, Machine_Emax, Machine_Emin, Machine_Mantissa, Model_Emin,
	Model_Mantissa and Safe_Emax attributes.
2020-12-15 06:41:50 -05:00
Piotr Trojanek
e5f53db770 [Ada] Refactor duplicated code for Denorm and Signed_Zeros attributes
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Denorm and Signed_Zeros attributes.
2020-12-15 06:41:50 -05:00
Piotr Trojanek
e30609bf04 [Ada] Refactor duplicated code for Adjacent, Copy_Sign and Remainder
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Adjacent, Copy_Sign and Remainder attributes.
	(Check_Floating_Point_Type_2): Fix style in comment.
2020-12-15 06:41:49 -05:00
Piotr Trojanek
a8ecf5ec32 [Ada] Refactor duplicated code for Compose, Leading_Part and Scaling
gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Compose, Leading_Part and Scaling attributes.
2020-12-15 06:41:49 -05:00
Jakub Jelinek
69bd5d473d i386: Fix up -march=x86-64-v[234] vs. target attribute [PR98274]
The following testcase fails to compile.  The problem is that
when ix86_option_override_internal is called the first time for command
line, it sees -mtune= wasn't present on the command line and so as fallback
sets ix86_tune_string to ix86_arch_string value ("x86-64-v2"), but
ix86_tune_specified is false, so we don't find the tuning in the table
but don't error on it.
When processing the target attribute, ix86_tune_string is what
it was earlier left with, but this time ix86_tune_specified is true and
so we error on it.

The following patch does what is done already e.g. for "x86-64" march,
in particular default the tuning to "generic".

2020-12-15  Jakub Jelinek  <jakub@redhat.com>

	PR target/98274
	* config/i386/i386-options.c (ix86_option_override_internal): Set
	ix86_tune_string to "generic" even when it wasn't specified and
	ix86_arch_string is "x86-64-v2", "x86-64-v3" or "x86-64-v4".
	Remove useless {}s around a single statement.

	* gcc.target/i386/pr98274.c: New test.
2020-12-15 10:16:08 +01:00
Martin Liska
cab1b0ebc0 lto: set nthreads_var to 1 if it is zero
gcc/ChangeLog:

	PR lto/98275
	* lto-wrapper.c: Do not use -j0 when we are unable to detect
	number of cores.
2020-12-15 10:07:37 +01:00
Jakub Jelinek
59482fa1e7 i386: Make -march=x86-64-v[234] behave more like other -march= options
If somebody has -march=x86-64-v2 (or -v3 or -v4) in $CFLAGS, $CXXFLAGS etc.,
then -m32 or -mabi=ms stops working.
What is worse, if one configures gcc --with-arch-64=x86-64-v2 (or -v3 or -v4),
then -mabi=ms stops working.

I think that is a nightmare user experience.  It is ok that x86-64-v[234]
behave slightly different from other -march= options (in that they imply
unless overridden -mtune=generic rather then -mtune= equal to the -march
argument), but the error when one mixes it with -mabi=ms, or -m32 doesn't
improve anything.
It is true that the exact option set is only defined in the x86-64 psABI
(IMHO that is a mistake too, we should copy that into the GCC documentation
like we document it for any other -march= option), but there is no reason
why that exact set of CPU features can't be used for other ABIs, it is just
a set of CPU features.  If we add micro-architecture levels to the 32-bit
ABI (I doubt anyone wants to do that, but just hypothetically), then those
micro-architecture levels wouldn't certainly be called x86-64-v* but perhaps
i386-v*.
In the tests, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 can't be expected on -m32
not because the CPU feature wouldn't be set, but because the instruction
is 64-bit only and 32-bit code doesn't have __int128 etc. support.

2020-12-15  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386-options.c (ix86_option_override_internal): Don't
	error on -march=x86-64-v[234] with -m32 or -mabi=ms.
	* config.gcc: Don't reject --with-arch=x86-64-v[234] or
	--with-arch_32=x86-64-v[234].
	* doc/invoke.texi (-march=x86-64-v[234]): Document what the option
	does for other ABIs.

	* gcc.target/i386/x86-64-v2.c: Don't expect
	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 to be defined with -m32.
	* gcc.target/i386/x86-64-v2-other.c: New test.
	* gcc.target/i386/x86-64-v2-msabi.c: New test.
	* gcc.target/i386/x86-64-v3.c: Fix a comment pasto.  Don't expect
	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 to be defined with -m32.
	* gcc.target/i386/x86-64-v3-other.c: New test.
	* gcc.target/i386/x86-64-v3-msabi.c: New test.
	* gcc.target/i386/x86-64-v4.c:Don't expect
	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 to be defined with -m32.
	* gcc.target/i386/x86-64-v4-other.c: New test.
	* gcc.target/i386/x86-64-v4-msabi.c: New test.
2020-12-15 09:51:28 +01:00
Martin Liska
efd08ad579 gcov: fix line output for nested functions in JSON format
gcc/ChangeLog:

	PR gcov-profile/98273
	* gcov.c (output_json_intermediate_file): Use stack of nested
	functions for lines in a source file.  Pop when a function ends.
2020-12-15 09:41:21 +01:00
Gerald Pfeifer
23900be4d3 libstdc++: Update link to Unicode-HOWTO
libstdc++-v3/ChangeLog:

2020-12-15  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/xml/manual/codecvt.xml: Update link to Unicode-HOWTO.
	* doc/html/manual/facets.html: Regenerate.
2020-12-15 09:33:18 +01:00
Gerald Pfeifer
e51ef5f95f doc: Update link to KernelAddressSanitizer
gcc/ChangeLog:

2020-12-15  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (Instrumentation Options): Update link to
	KernelAddressSanitizer.
2020-12-15 08:29:11 +01:00
Max Filippov
06ff8708f0 gcc: xtensa: fix PR target/98285
2020-12-14  Max Filippov  <jcmvbkbc@gmail.com>
gcc/
	* config/xtensa/predicates.md (addsubx_operand): Change accepted
	values from 2/4/8 to 1..3.
	* config/xtensa/xtensa.md (*addx, *subx): Change RTL pattern
	to use 'ashift' instead of 'mult'. Update operands[3] value.

gcc/testsuite/
	* gcc.target/xtensa/pr98285.c: New test.
2020-12-14 22:29:50 -08:00
Ian Lance Taylor
773a4106bb go-test.exp: retain any characters at end of ERROR line
* go.test/go-test.exp (errchk): Retain any characters at the end
	of the comment.
2020-12-14 20:39:53 -08:00
liuhongt
e2e0c7b86f Fix up testcase.
gcc/testsuite

	* gcc.target/i386/pr78102.c: Adjust testcase.
2020-12-15 10:06:58 +08:00
GCC Administrator
d52945ce54 Daily bump. 2020-12-15 00:16:35 +00:00
Gerald Pfeifer
22a9021730 rs6000: Update the processor defaults for FreeBSD
gcc/ChangeLog:

2020-12-13  Piotr Kubaj  <pkubaj@FreeBSD.org>
	    Gerald Pfeifer  <gerald@pfeifer.com>

	* config/rs6000/freebsd64.h (PROCESSOR_DEFAULT): Update
	to PROCESSOR_PPC7450.
	(PROCESSOR_DEFAULT64): Update to PROCESSOR_POWER8.
2020-12-15 00:13:42 +01:00
François Dumont
4c275e83dd libstdc++: Make tests with Undefined Behavior in C++11 UNSUPPORTED
libstdc++-v3/ChangeLog:

	* testsuite/23_containers/array/debug/back1_neg.cc: Target c++14 because assertion
	is disabled in C++11.
	* testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
	* testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc: Likewise.
2020-12-14 22:28:38 +01:00
Ilya Leoshkevich
057dc81f82 aix: Fixinclude updates [PR98208]
After 92648faa1c ("aix: Fixinclude") make check-fixincludes began to
fail (at least on gcc121 machine).  Fix by updating fixincludes/tests
and rerunning genfixes.

Co-developed-by: Nathan Sidwell <nathan@acm.org>

fixincludes/ChangeLog:

2020-12-11  Ilya Leoshkevich  <iii@linux.ibm.com>

	* fixincl.x: Rerun genfixes.
	* inclhack.def(aix_physadr_t): Change test_text to something
	that needs to be replaced.
	* tests/base/sys/types.h(aix_physadr_t): Add expectation.
2020-12-14 21:57:32 +01:00