- 27 Sep, 2018 3 commits
-
-
/cp 2018-09-27 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84940 * semantics.c (finish_unary_op_expr): Check return value of build_x_unary_op for error_mark_node. /testsuite 2018-09-27 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84940 * g++.dg/expr/unary4.C: New. From-SVN: r264664
Paolo Carlini committed -
gcc/ChangeLog: 2018-09-27 Andreas Krebbel <krebbel@linux.ibm.com> * config/s390/s390.md (PPA_TX_ABORT, PPA_OOO_BARRIER): New constant definitions. ("tx_assist"): Replace magic number with PPA_TX_ABORT. ("*ppa"): Enable pattern also for -march=zEC12 -mno-htm. ("speculation_barrier"): New expander definition. From-SVN: r264663
Andreas Krebbel committed -
From-SVN: r264661
GCC Administrator committed
-
- 26 Sep, 2018 37 commits
-
-
re PR gcov-profile/86957 (gcc should warn about missing profiles for a compilation unit or a new function with -fprofile-use) 2018-09-26 Indu Bhagat <indu.bhagat@oracle.com> PR gcov-profile/86957 * common.opt: New warning option -Wmissing-profile. * coverage.c (get_coverage_counts): Add warning for missing .gcda file. * doc/invoke.texi: Document -Wmissing-profile. From-SVN: r264657
Indu Bhagat committed -
In C11, implicit conversions from integer to floating-point types produce results with the range and precision of the corresponding evaluation format rather than only those of the type implicitly converted to. This patch implements that case of C11 excess precision semantics in the case of a comparison between integer and floating-point types, previously missed when implementing other cases of excess precision for such implicit conversions. As with other such fixes, this patch conservatively follows the reading of C99 where conversions from integer to floating-point do not produce results with excess precision and so the change is made for C11 mode only. Bootstrapped with no regressions on x86_64-pc-linux-gnu. gcc/c: PR c/87390 * c-typeck.c (build_binary_op): Use excess precision for comparisons of integers and floating-point for C11 and later. gcc/testsuite: PR c/87390 * gcc.target/i386/excess-precision-9.c, gcc.target/i386/excess-precision-10.c: New tests. From-SVN: r264656
Joseph Myers committed -
gcc/ * config/riscv/riscv.md (subsi3_extended2): Add J constraint. (negdi2, negsi2, negsi2_extended, negsi2_extended2): New. From-SVN: r264655
Jim Wilson committed -
gcc/ChangeLog: * tree.c (zerop): Change return type to bool. (integer_zerop, integer_onep, integer_each_onep): Same. (integer_all_onesp, integer_minus_onep, integer_pow2p): Same. (integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same. (real_onep, real_minus_onep, chain_index): Same. (print_type_hash_statistics, type_list_equal): Same. * tree.h (zerop): Same. (zerop, integer_zerop, integer_onep, integer_each_onep): Same. (integer_all_onesp, integer_minus_onep, integer_pow2p): Same. (integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same. (real_onep, real_minus_onep, chain_index): Same. (print_type_hash_statistics, type_list_equal): Same. From-SVN: r264653
Martin Sebor committed -
gcc/ * config/riscv/riscv.h (FUNCTION_ARG_REGNO_P): Fix comment. From-SVN: r264652
Jim Wilson committed -
PR target/87414 * config/i386/i386.c: Include debug.h and dwarf2out.h. (output_indirect_thunk): Emit DW_CFA_def_cfa_offset after the call. From-SVN: r264651
Jakub Jelinek committed -
Ensure that the address really is the correct mode for an address. 2018-09-25 Andrew Stubbs <ams@codesourcery.com> gcc/ * builtins.c (get_builtin_sync_mem): Force address mode conversion. From-SVN: r264650
Andrew Stubbs committed -
* config/i386/crtprec.c (set_precision): Use fnstcw instead of fstcw. From-SVN: r264649
Uros Bizjak committed -
* config/i386/i386.h (enum reg_class): Remove FP_TOP_SSE_REGS and FP_SECOND_SSE_REGS. (REG_CLASS_NAMES): Ditto. (REG_CLASS_CONTENTS): Ditto. * config/i386/i386.c (ix86_preferred_reload_class) Do not handle FP_TOP_SSE_REGS and FP_SECOND_SSE_REGS classes. (ix86_preferred_output_reload_class): Ditto. * config/i386/i386.md (fix_trunc<mode>_i387_fisttp): Change "=&1f" clobber constraint to "=&f". (fix_truncdi_i387): Ditto. (lrintxfdi2): Ditto. (fistdi2_<rounding>): Ditto. (fpremxf4_i387): Change "=u" constraint to "=f". (fprem1xf4_i387): Ditto. (sincosxf3): Ditto. (fptanxf4_i387): Ditto. (fxtractxf3_i387): Ditto. (fscalexf4_i387): Ditto. (atan2xf3): Change "u" constraint to "f". (fyl2xxf3_i387): Ditto. (fyl2xp1xf3_i387): Ditto. From-SVN: r264648
Uros Bizjak committed -
On Alpha GNU/Linux there is no geteuid system call, there is only getresuid. The raw geteuid system call is only used for testing, so just skip the test if it's not available. Reviewed-on: https://go-review.googlesource.com/137655 From-SVN: r264647
Ian Lance Taylor committed -
From-SVN: r264646
Uros Bizjak committed -
PR target/87439 * config/i386/i386.h (NUM_MODES_FOR_MODE_SWITCHING): Update for removed I387_MASK_PM entity. From-SVN: r264645
Uros Bizjak committed -
2018-09-26 Alexey Neyman <stilor@att.net> * graphite.h: Include <isl/id.h> and <isl/space.h>; these headers are no longer pulled in by <isl/val.h>. From-SVN: r264644
Jeff Law committed -
2018-09-26 Richard Biener <rguenther@suse.de> PR debug/87443 * dwarf2out.c (gen_lexical_block_die): Do not equate inline or concrete instance DIE to the tree. Create abstract origin attributes also for concrete instances. * gcc.dg/debug/dwarf2/inline5.c: New testcase. From-SVN: r264643
Richard Biener committed -
* graphite.h: Include <isl/id.h> and <isl/space.h>; these headers are no longer pulled in by <isl/val.h>. From-SVN: r264642
Alexey Neyman committed -
* Makefile.am (mostlyclean-local): Ignore chmod errors. (check-go-tool): Likewise. * Makefile.in: Regenerate. From-SVN: r264641
Rainer Orth committed -
2018-09-26 Martin Jambor <mjambor@suse.cz> PR c/87347 c/ * c-parser.c (warn_for_abs): Bail out if TYPE_ARG_TYPES is NULL. Fix comment. testsuite/ * gcc.dg/pr87347.c: New test. From-SVN: r264640
Martin Jambor committed -
re PR c++/71131 ([concepts] Ill-formed code declaring a variable with a template concept not rejected) 2018-09-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/71131 * g++.dg/concepts/pr71131.C: New. 2018-09-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/71127 * g++.dg/concepts/pr71127.C: New. From-SVN: r264639
Paolo Carlini committed -
2018-09-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/67655 * g++.dg/concepts/pr67655.C: New. From-SVN: r264638
Paolo Carlini committed -
2018-09-26 Elisa Barboni <barboni@adacore.com> gcc/ada/ * sem_prag.adb (Check_Refined_Global_Item): Improve error message. From-SVN: r264637
Elisa Barboni committed -
When a representation item is defined by a pragma or attribute definition clause, the entity it applies to is that of the Name of the representation item. But when it is defined by an aspect definition, the entity is directly denoted by the Entity attribute of the represenation item. The circuitry that inherits representation items for derived types or subtypes must account for these two possible cases. 2018-09-26 Thomas Quinot <quinot@adacore.com> gcc/ada/ * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a representation item that is an N_Aspect_Definition, retrieve the entity it applies to using the Entity attribute. gcc/testsuite/ * gnat.dg/sso13.adb: New testcase. From-SVN: r264636
Thomas Quinot committed -
This patch fixes an issue whereby user-defined subprograms used as generic actuals with corresponding formals containing other formal types led to spurious ineffective use_clause warnings. 2018-09-26 Justin Squirek <squirek@adacore.com> gcc/ada/ * sem_ch8.adb (Analyze_Subprogram_Renaming): Add extra condition to check for unmarked subprogram references coming from renamings. gcc/testsuite/ * gnat.dg/warn16.adb: New testcase. From-SVN: r264635
Justin Squirek committed -
2018-09-26 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * back_end.adb (Scan_Compiler_Arguments): Store -G xxx switches. From-SVN: r264634
Arnaud Charlet committed -
Issue a positive message that inlining was performed in GNATprove mode, when corresponding debug switch -gnatd_f is set. 2018-09-26 Yannick Moy <moy@adacore.com> gcc/ada/ * errout.ads: Update comment for insertion character '?'. * inline.adb: Use simple insertion character '?' for GNATprove info messages. * sem_res.adb (Resolve_Call): Issue an info message on inlining in GNATprove mode. From-SVN: r264633
Yannick Moy committed -
This patch ensures that the front-end generates constraint checks for some operations that previously depended on gigi for the corresponding check. The patch also resets the Do_Range_Check flag so that it never appears in the tree presented to gigi. 2018-09-26 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * checks.adb (Apply_Type_Conversion_Checks): Do not generate a range check on the expression of the conversion if it involves a fixed-point type, as such conversions are handled specially during expansion. * exp_ch4.adb (Expand_N_Type_Conversion): In a conversion from Fixed to Integer, use the base type of the expression to ensure that the caller will generate the proper constraint check when needed. From-SVN: r264632
Ed Schonberg committed -
2018-09-26 Maroua Maalej <maalej@adacore.com> gcc/ada/ * sem_spark.adb (Check_Loop_Statement): Fix a bug related to loop exit environment. (Check_Statement): fixing a bug when comparing the source and target in an assignment statement. From-SVN: r264631
Maroua Maalej committed -
This patch ensures that the full compilation context is captured prior to package or subprogram instantiation/inlining and restored after the action takes place. 2018-09-26 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * sem_ch12.adb (Instantiate_Package_Body): Capture and restore the full compilation context. (Instantiate_Subprogram_Body): Capture and restore the full compilation context. gcc/testsuite/ * gnat.dg/elab7.adb, gnat.dg/elab7_pkg1.adb, gnat.dg/elab7_pkg1.ads, gnat.dg/elab7_pkg2.adb, gnat.dg/elab7_pkg2.ads: New testcase. From-SVN: r264630
Hristian Kirtchev committed -
Info messages about lack of inlining for analysis in GNATprove may be confusing to users. They are now only issued when GNATprove is called with switch --info, which it passes on to gnat2why with switch -gnatd_f. There is no effect on compilation. 2018-09-26 Yannick Moy <moy@adacore.com> gcc/ada/ * debug.adb: Add use for -gnatd_f switch. * inline.adb (Cannot_Inline): Only issue info message for failure to inline in GNATprove mode when switch -gnatd_f is used. From-SVN: r264629
Yannick Moy committed -
The frontend reports an error under ZFP when performing the type conversion of a tagged object to one of its covered interface types. 2018-09-26 Javier Miranda <miranda@adacore.com> gcc/ada/ * exp_disp.adb (Expand_Interface_Conversion): No displacement of the pointer needed when the type of the operand is an interface type that maches the target type and we are compiling under configurable runtime. Adding also documentation explaining why this cannot be done when compiling with the full runtime. * exp_intr.adb: Update comment. gcc/testsuite/ * gnat.dg/interface8.adb, gnat.dg/interface8.ads: New testcase. From-SVN: r264628
Javier Miranda committed -
2018-09-26 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * sem_ch5.adb (Wrap_Loop_Statement): Annotate as No_Return. From-SVN: r264627
Hristian Kirtchev committed -
This patch fixes a spurious error involving a private extension whose full view includes a dynamic predicate, when the parent type is itself private at the point of the predicate check. The conversion is known to be legal so no extra conversion checks are required. 2018-09-26 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_util.adb (Make_Predicate_Call): Use OK_Convert_To when applying a predicate check to prevent spurious errors when private ancestors are involved. gcc/testsuite/ * gnat.dg/predicate2-containers.ads, gnat.dg/predicate2-project-name_values.ads, gnat.dg/predicate2-project-registry-attribute.ads, gnat.dg/predicate2-project-registry.ads, gnat.dg/predicate2-project-typ-set.ads, gnat.dg/predicate2-project-typ.ads, gnat.dg/predicate2-project.ads, gnat.dg/predicate2-source_reference.ads, gnat.dg/predicate2.ads, gnat.dg/predicate2_main.adb: New testcase. From-SVN: r264626
Ed Schonberg committed -
This patch reimplements the handling of the secondary stack when the iteration scheme of a loop statement requires this support. Prior to this modification, an iterator loop over a container was assumed to require unconditional secondary stack management. This is however not always true because of user-defined iterator types, where routines First and Next return an iterator that does require the secondary stack. ------------ -- Source -- ------------ -- gnat.adc pragma Restrictions (No_Secondary_Stack); -- test.ads package Test is type Test_Type is private with Default_Initial_Condition, Iterable => (First => First_Element, Next => Next_Element, Has_Element => Has_Element, Element => Element); type Cursor_Type is private; function First_Element (T : Test_Type) return Cursor_Type; function Next_Element (T : Test_Type; C : Cursor_Type) return Cursor_Type; function Has_Element (T : Test_Type; C : Cursor_Type) return Boolean; function Element (T : Test_Type; C : Cursor_Type) return Natural; private type Cursor_Type is new Natural; type Test_Type is record null; end record; function First_Element (T : Test_Type) return Cursor_Type is (0); function Next_Element (T : Test_Type; C : Cursor_Type) return Cursor_Type is (0); function Has_Element (T : Test_Type; C : Cursor_Type) return Boolean is (False); function Element (T : Test_Type; C : Cursor_Type) return Natural is (0); end Test; -- main.adb with Test; use Test; procedure Main is F : Boolean; M : Test_Type; begin for Elem of M loop null; end loop; F := (for all C of M => C = 1); F := (for all C in M => True); end Main; ----------------- -- Compilation -- ----------------- $ gnatmake -q --RTS=zfp -nostdlib main.adb 2018-09-26 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * exp_ch4.adb (Expand_N_Allocator): Ensure that the use of the secondary stack does not clash with restriction No_Secondary_Stack. * exp_ch6.adb (Expand_N_Extended_Return_Statement): Ensure that the use of the secondary stack does not clash with restriction No_Secondary_Stack. * sem_ch5.adb (Analyze_Loop_Statement): Wrap the loop in a block prior to analysis in order to either provide a local scope for an iterator, or ensure that the secondary stack is properly managed. (Check_Call): Account for the case where the tree may be unanalyzed or contain prior errors. (Has_Call_Using_Secondary_Stack): Renamed to Has_Sec_Stack_Call. Update all uses of the subprogram. (Prepare_Loop_Statement): New routine. From-SVN: r264625
Hristian Kirtchev committed -
This patch does not affect the behavior of Ada-only code but improves consistency with the code generated by the C++ compiler. 2018-09-26 Javier Miranda <miranda@adacore.com> gcc/ada/ * sem_res.adb (Resolve_Actuals): If the formal is a class-wide type conversion then do not skip resolving and expanding the conversion; required to displace the pointer to the object and reference the dispatch table associated with the target interface type. From-SVN: r264624
Javier Miranda committed -
This patch corrects the logic of GNAT.Dynamic_HTables.Dynamic_HTable.Put to update the number of key-value pairs in the hash table only when the put is adding a new pair, rather than updating the value of an existing pair. 2018-09-26 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * libgnat/g-dynhta.adb (Prepend_Or_Replace): Update the number of key-value pairs in the hash table only when adding a brand new pair. gcc/testsuite/ * gnat.dg/dynhash1.adb: New testcase. From-SVN: r264623
Hristian Kirtchev committed -
2018-09-26 Sergey Rybin <rybin@adacore.com> gcc/ada/ * doc/gnat_ugn/gnat_utility_programs.rst: Add note about processing of aggregate projects in gnatmetric and gnatstub. From-SVN: r264622
Sergey Rybin committed -
2018-09-26 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * contracts.adb, exp_unst.adb, exp_util.adb, gnat1drv.adb, opt.ads, par-prag.adb, sem_ch3.adb, sem_ch5.adb, sem_prag.adb, sinfo.ads, snames.ads-tmpl: Minor reformatting. From-SVN: r264621
Hristian Kirtchev committed -
This patch implements unit GNAT.Sets which currently offers a general purpose membership set. The patch also streamlines GNAT.Dynamic_HTables and GNAT.Lists to use parts of the same API, types, and exceptions as those used by GNAT.Sets. 2018-09-26 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * gcc-interface/Make-lang.in: Add unit GNAT.Sets to the list of front end sources. * impunit.adb: Add unit GNAT.Sets to the list of predefined units. * Makefile.rtl: Add unit GNAT.Sets to the list of non-tasking units. * libgnat/g-sets.adb: New unit. * libgnat/g-sets.ads: New unit. * libgnat/g-dynhta.adb (Minimum_Size): Decrease to 8 in order to allow for small sets. Update all occurrences of Table_Locked to Iterated. (Ensure_Unlocked): Query the number of iterators. (Find_Node): Use the supplied equality. (Is_Empty): New routine. (Lock): Update the number of iterators. (Prepend_Or_Replace): Use the supplied equality. (Size): Update the return type. (Unlock): Update the number of iterators. * libgnat/g-dynhta.ads: Update all occurrences of Table_Locked to Iterated. Rename formal subprogram Equivalent_Keys to "=". (Bucket_Range_Type, Pair_Count_Type): Remove types. (Not_Created, Table_Locked, Iterator_Exhausted): Remove exceptions. (Hash_Table): Update to store the number of iterators rather than locks. (Is_Empty): New routine. (Size): Update the return type. * libgnat/g-lists.adb: Update all occurrences of List_Locked to Iterated. (Ensure_Unlocked): Query the number of iterators. (Length): Remove. (Lock): Update the number of iterators. (Size): New routine. (Unlock): Update the number of iterators. * libgnat/g-lists.ads: Update all occurrences of List_Locked to Iterated. (Element_Count_Type): Remove type. (Not_Created, Table_Locked, Iterator_Exhausted): Remove exceptions. (Linked_List): Update type to store the number of iterators rather than locks. (Length): Remove. (Size): New routine. * libgnat/gnat.ads (Bucket_Range_Type): New type. (Iterated, Iterator_Exhausted, and Not_Created): New exceptions. gcc/testsuite/ * gnat.dg/sets1.adb: New testcase. * gnat.dg/dynhash.adb, gnat.dg/linkedlist.adb: Update testcases to new API. From-SVN: r264620
Hristian Kirtchev committed
-