Fix a bug in the parser code that decides whether a given name should
be considered exported or not. The function Lex::is_exported_name
(which assumes that its input is a mangled name) was being called on
non-mangled (raw utf-8) names in various places. For the bug in
question this caused an imported package to be registered under the
wrong name. To fix the issue, rename 'Lex::is_exported_name' to
'Lex::is_exported_mangled_name', and add a new 'Lex::is_exported_name'
that works on utf-8 strings.
Fixesgolang/go#27836.
Reviewed-on: https://go-review.googlesource.com/137736
From-SVN: r264690
This patch was part of the original patch we acquired from Honza and Martin.
It simplifies nested vec_merge operations using the same mask.
Self-tests are included.
2018-09-28 Andrew Stubbs <ams@codesourcery.com>
Jan Hubicka <jh@suse.cz>
Martin Jambor <mjambor@suse.cz>
* simplify-rtx.c (simplify_merge_mask): New function.
(simplify_ternary_operation): Use it, also see if VEC_MERGEs with the
same masks are used in op1 or op2.
(test_vec_merge): New function.
(test_vector_ops): Call test_vec_merge.
Co-Authored-By: Jan Hubicka <jh@suse.cz>
Co-Authored-By: Martin Jambor <mjambor@suse.cz>
From-SVN: r264688
This fixes the one remaining case where the stricter vec_splat checking
complains in the testsuite.
* g++.dg/ext/altivec-6.C: Change the vec_splat second argument to a
valid value, in the "vector bool int" case.
From-SVN: r264681
This deletes most HAVE_AS_* that determine if the assembler supports
some ISA level (and also HAVE_AS_MFPGPR and HAVE_AS_DFP).
These are not useful: we will only generate an instruction that requires
some newer ISA if the user specifically asked for it (with -mcpu=, say).
If the assembler cannot handle that, it is fine if it gives an error.
They also hurt: it increases the number of possible situations that all
need handling and all need testing. We do not handle all cases, and
obviously do not test all either.
This patch removes:
HAVE_AS_POPCNTB (power5, 2.02)
HAVE_AS_FPRND (power5+, 2.04)
HAVE_AS_CMPB (power6, 2.05)
HAVE_AS_POPCNTD (power7, 2.06)
HAVE_AS_POWER8 (power8, 2.07)
HAVE_AS_POWER9 (power9, 3.0)
HAVE_AS_DFP (power6, 2.05, server)
HAVE_AS_MFPGPR (power6x but not later, not arch)
PR target/87149
* config.in (HAVE_AS_CMPB, HAVE_AS_DFP, HAVE_AS_FPRND, HAVE_AS_MFPGPR,
HAVE_AS_POPCNTB, HAVE_AS_POPCNTD, HAVE_AS_POWER8, HAVE_AS_POWER9):
Delete, always treat as true.
* config/powerpcspe/powerpcspe.c (rs6000_option_override_internal):
Ditto. Simplify remaining code.
* config/powerpcspe/powerpcspe.h: Ditto.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Ditto.
Simplify remaining code.
(rs6000_expand_builtin): Ditto.
* config/rs6000/rs6000.h: Ditto.
* configure.ac: Ditto.
* configure: Regenerate.
From-SVN: r264675
2018-09-27 Richard Biener <rguenther@suse.de>
PR testsuite/87451
* gcc.dg/debug/dwarf2/inline5.c: Deal with different comment characters.
From-SVN: r264668
2018-09-27 Richard Biener <rguenther@suse.de>
PR debug/37801
PR debug/87440
* dwarf2out.c (set_block_origin_self): Do not mark outermost
block as we do not output that.
(gen_inlined_subroutine_die): Elide the originally outermost
block, matching what we do for concrete instances.
(decls_for_scope): Add parameter specifying whether to recurse
to subblocks.
* gcc.dg/debug/dwarf2/inline2.c: Adjust.
* gcc.dg/debug/dwarf2/inline4.c: New testcase.
From-SVN: r264667
This is an update of the patch posted to PR82089 long ago. We ran into the
same bug on GCN, so we need this fixed as part of this series.
2018-09-27 Andrew Stubbs <ams@codesourcery.com>
Tom de Vries <tom@codesourcery.com>
PR 82089
gcc/
* expmed.c (emit_cstore): Fix handling of result_mode == BImode and
STORE_FLAG_VALUE == 1.
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r264666
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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