New Swedish PO file for 'gcc' (version 10.1.0)

2020-06-21 Thread Translation Project Robot
Hello, gentle maintainer.

This is a message from the Translation Project robot.

A revised PO file for textual domain 'gcc' has been submitted
by the Swedish team of translators.  The file is available at:

https://translationproject.org/latest/gcc/sv.po

(This file, 'gcc-10.1.0.sv.po', has just now been sent to you in
a separate email.)

All other PO files for your package are available in:

https://translationproject.org/latest/gcc/

Please consider including all of these in your next release, whether
official or a pretest.

Whenever you have a new distribution with a new version number ready,
containing a newer POT file, please send the URL of that distribution
tarball to the address below.  The tarball may be just a pretest or a
snapshot, it does not even have to compile.  It is just used by the
translators when they need some extra translation context.

The following HTML page has been updated:

https://translationproject.org/domain/gcc.html

If any question arises, please contact the translation coordinator.

Thank you for all your work,

The Translation Project robot, in the
name of your translation coordinator.




*ping* [patch, fortran] PR 27318, warn if interfaces do not match

2020-06-21 Thread Thomas Koenig via Gcc-patches

Am 14.06.20 um 12:10 schrieb Thomas Koenig:

Hello world,

this patch solves an PR which just had its 14th birthday,
continuing the mission of alerting the user to mismatches where
possible.

Regression-tested (which led to a few of the extra checks for errors).
OK for trunk?


Ping?

I'd like to get this committed in a few days.  (I am getting the feeling
that I am the only active reviewer for anything except OpenAcc and
OpenMP at the moment.  While I can do that, at least at the moment,
I think it's a bit unhealthy to have only one person do this, and it
also makes it hard to get my own patches in, unless I bend the rules
a bit and commit anyway after a previous announcement).

Regards

Thomas


Re: [PATCHv3] Handle TYPE_PACK_EXPANSION in cxx_incomplete_type_diagnostic

2020-06-21 Thread Jason Merrill via Gcc-patches

On 6/20/20 2:26 PM, Nicholas Krause wrote:

From: Nicholas Krause 

This fixs the PR95672 by adding the missing TYPE_PACK_EXPANSION case in
cxx_incomplete_type_diagnostic in order to avoid ICES on diagnosing
incomplete template pack expansion cases. In v2, add the missing required
test case for all new patches. v3 Fixes both the test case to compile in
C++11 mode and the message to print out only the type.

Signed-off-by: Nicholas Krause 
Changelog:
*gcc/cp/typeck2.c: Add missing case TYPE_PACK_EXPANSION for diagnosing
incomplete parameter pack expansion in cxx_incomplete_type_diagnostic
in order to avoid ICEing here.
*gcc/testsuite/g++.db/template/PR95672.C:Add new testcase for PR95672.


This still doesn't satisfy git gcc-verify.  Try using

  git gcc-commit-mklog --amend

to add a suitable ChangeLog skeleton.  You may need to run 
contrib/gcc-git-customization.sh first.



---
  gcc/cp/typeck2.c| 6 ++
  gcc/testsuite/g++.dg/template/PR95672.C | 3 +++
  2 files changed, 9 insertions(+)
  create mode 100644 gcc/testsuite/g++.dg/template/PR95672.C

diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 5fd3b82fa89..28b32fe0b5a 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -552,6 +552,12 @@ cxx_incomplete_type_diagnostic (location_t loc, const_tree 
value,
   TYPE_NAME (type));
break;
  
+case TYPE_PACK_EXPANSION:

+ emit_diagnostic (diag_kind, loc, 0,
+"invalid use of pack expansion %qT",
+ type);
+  break;
+
  case TYPENAME_TYPE:
  case DECLTYPE_TYPE:
emit_diagnostic (diag_kind, loc, 0,
diff --git a/gcc/testsuite/g++.dg/template/PR95672.C 
b/gcc/testsuite/g++.dg/template/PR95672.C
new file mode 100644
index 000..8795c13f365
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/PR95672.C
@@ -0,0 +1,3 @@
+//c++ PR96572
+// {dg-options "-std=c++11"}
+struct g_class : decltype  (auto) ... {  } ; { dg-error "invalid use of pack 
expansion" }


This test still fails.

Jason



Re: PING^2: V5 [PATCH] x86: Move cpuinfo.h from libgcc to common/config/i386

2020-06-21 Thread Uros Bizjak via Gcc-patches
On Sat, Jun 20, 2020 at 3:40 PM H.J. Lu  wrote:

> > > > >> 2) can we automatically deduce option name:
> > > > >>
> > > > >>> +  ISA_NAMES_TABLE_ENTRY("rdpid", FEATURE_RDPID, P_ZERO, "-mrdpid")
> > > > >>> +  ISA_NAMES_TABLE_ENTRY("rdrnd", FEATURE_RDRND, P_ZERO, "-mrdrnd")
> > > > >>
> > > > >> I mean "-m" + "rdrnd" == "-mrdrnd" ?
> > > > >
> > > > > The new option field serves 2 purposes:
> > > > >
> > > > > 1. Not all features have a corresponding command-line option
> > > > >
> > > > > ISA_NAMES_TABLE_ENTRY("cmov", FEATURE_CMOV, P_ZERO, NULL)
> > > > >
> > > > >   for (i = 0; i < ARRAY_SIZE (isa_names_table); i++)
> > > > >  if (isa_names_table[i].option)
> > > > >
> > > > > 2. Some feature has a different name in the command-line option.
> > > > >
> > > > >ISA_NAMES_TABLE_ENTRY("fxsave", FEATURE_FXSAVE, P_ZERO, "-mfxsr")
> > > >
> > > > I noticed that, one can theoretically use "" for an option that does not
> > > > have a flag. And NULL for these which have option equal to "-m" + name.
> > > > Anyway, that's a nit.
> > > >
> > > > I support the patch!
> > > > Martin
> > > >
> > > > >
> > > > > Here is the updated patch.   OK for master?
> > > > >
> > > > > Thanks.
> > > > >
> > > >
> > >
> > > PING:
> > >
> > > https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546522.html
> > >
> >
> > PING.
>
> Hi,
>
> We have patches like
>
> https://gcc.gnu.org/pipermail/gcc-bugs/2020-June/705851.html
>
> queued up because of this prerequisite patch.   Are there any objections
> to this patch?

Yes, there are my objections.

As explained before, I support unifying libgcc and core gcc handling,
but _NOT_ unifying with driver-i386.c. Unifying libgcc and core gcc
handling would have benefit to avoid desynchronisation between the two
(which happened multiple times in the past, resulting in various API
issues). OTOH, unifying with driver-i386.c would result in quite messy
approach, because driver-i386 handles more targets beside relatively
recent 64bit Intel and AMD targets, not to mention heuristics to
determine the most appropriate target when standard detection fails
(e.g. emulators).

Uros.


Re: PING^2: V5 [PATCH] x86: Move cpuinfo.h from libgcc to common/config/i386

2020-06-21 Thread H.J. Lu via Gcc-patches
On Sun, Jun 21, 2020 at 10:18 AM Uros Bizjak  wrote:
>
> On Sat, Jun 20, 2020 at 3:40 PM H.J. Lu  wrote:
>
> > > > > >> 2) can we automatically deduce option name:
> > > > > >>
> > > > > >>> +  ISA_NAMES_TABLE_ENTRY("rdpid", FEATURE_RDPID, P_ZERO, 
> > > > > >>> "-mrdpid")
> > > > > >>> +  ISA_NAMES_TABLE_ENTRY("rdrnd", FEATURE_RDRND, P_ZERO, 
> > > > > >>> "-mrdrnd")
> > > > > >>
> > > > > >> I mean "-m" + "rdrnd" == "-mrdrnd" ?
> > > > > >
> > > > > > The new option field serves 2 purposes:
> > > > > >
> > > > > > 1. Not all features have a corresponding command-line option
> > > > > >
> > > > > > ISA_NAMES_TABLE_ENTRY("cmov", FEATURE_CMOV, P_ZERO, NULL)
> > > > > >
> > > > > >   for (i = 0; i < ARRAY_SIZE (isa_names_table); i++)
> > > > > >  if (isa_names_table[i].option)
> > > > > >
> > > > > > 2. Some feature has a different name in the command-line option.
> > > > > >
> > > > > >ISA_NAMES_TABLE_ENTRY("fxsave", FEATURE_FXSAVE, P_ZERO, "-mfxsr")
> > > > >
> > > > > I noticed that, one can theoretically use "" for an option that does 
> > > > > not
> > > > > have a flag. And NULL for these which have option equal to "-m" + 
> > > > > name.
> > > > > Anyway, that's a nit.
> > > > >
> > > > > I support the patch!
> > > > > Martin
> > > > >
> > > > > >
> > > > > > Here is the updated patch.   OK for master?
> > > > > >
> > > > > > Thanks.
> > > > > >
> > > > >
> > > >
> > > > PING:
> > > >
> > > > https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546522.html
> > > >
> > >
> > > PING.
> >
> > Hi,
> >
> > We have patches like
> >
> > https://gcc.gnu.org/pipermail/gcc-bugs/2020-June/705851.html
> >
> > queued up because of this prerequisite patch.   Are there any objections
> > to this patch?
>
> Yes, there are my objections.
>
> As explained before, I support unifying libgcc and core gcc handling,
> but _NOT_ unifying with driver-i386.c. Unifying libgcc and core gcc
> handling would have benefit to avoid desynchronisation between the two
> (which happened multiple times in the past, resulting in various API
> issues). OTOH, unifying with driver-i386.c would result in quite messy
> approach, because driver-i386 handles more targets beside relatively
> recent 64bit Intel and AMD targets, not to mention heuristics to
> determine the most appropriate target when standard detection fails
> (e.g. emulators).

Only the duplicated parts of driver-i386.c should be unified.  The only impact
should be removing code duplications.  If it isn't the case, it is a bug in my
implementation.

-- 
H.J.


[PATCHv4] Handle TYPE_PACK_EXPANSION in cxx_incomplete_type_diagnostic

2020-06-21 Thread Nicholas Krause via Gcc-patches
From: Nicholas Krause 

This fixs the PR95672 by adding the missing TYPE_PACK_EXPANSION case in
cxx_incomplete_type_diagnostic in order to avoid ICES on diagnosing
incomplete template pack expansion cases. In v2, add the missing required
test case for all new patches. v3 Fixes both the test case to compile in
C++11 mode and the message to print out only the type. v4 fixes the testcase
to only target C++11.

gcc/cp/ChangeLog:

* typeck2.c (cxx_incomplete_type_diagnostic):

gcc/testsuite/ChangeLog:

* g++.dg/template/PR95672.C: New test.

Signed-off-by: Nicholas Krause 
---
 gcc/cp/typeck2.c| 6 ++
 gcc/testsuite/g++.dg/template/PR95672.C | 3 +++
 2 files changed, 9 insertions(+)
 create mode 100644 gcc/testsuite/g++.dg/template/PR95672.C

diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 5fd3b82fa89..28b32fe0b5a 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -552,6 +552,12 @@ cxx_incomplete_type_diagnostic (location_t loc, const_tree 
value,
   TYPE_NAME (type));
   break;
 
+case TYPE_PACK_EXPANSION:
+ emit_diagnostic (diag_kind, loc, 0,
+"invalid use of pack expansion %qT",
+ type);
+  break;
+
 case TYPENAME_TYPE:
 case DECLTYPE_TYPE:
   emit_diagnostic (diag_kind, loc, 0,
diff --git a/gcc/testsuite/g++.dg/template/PR95672.C 
b/gcc/testsuite/g++.dg/template/PR95672.C
new file mode 100644
index 000..fcc3da0a132
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/PR95672.C
@@ -0,0 +1,3 @@
+//c++ PR96572 
+// { dg-do compile { target c++11 } }
+struct g_class : decltype  (auto) ... {  } ; //{ dg-error "invalid use of pack 
expansion" }
-- 
2.20.1



Re: [PATCH] recog: Use parameter packs for operator()

2020-06-21 Thread Gerald Pfeifer
On Thu, 18 Jun 2020, Sebastian Huber wrote:
> b952c2cfcd74c284970e1b9bf1fca58f5f69ab23 on 10th of June. I build GCC 
> roughly once per week.

I have daily builds running on i386-unknown-freebsd11.3 (since this is
the flavor most likely to trigger issues) and the failure started in the 
24 hours leading up to 2020-06-18-16:40UTC.

clang 8.0.1 is the system compiler on FreeBSD 11, so we need a way for
that to work I'm afraid.

I filed https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95805 and included
the relevant part of the build log.

Gerald


Re: [PATCH] RISC-V: Fix compilation failed for frflags builtin in C++ mode

2020-06-21 Thread Kito Cheng via Gcc-patches
Hi Jason:

Committed, thanks for your review :)

> You should also be able to remove
>
> > #define RISCV_ATYPE_VOID void_type_node

That's still used for builtin functions without return value :)


Re: [PATCH] RISC-V: Normalize arch string in driver time

2020-06-21 Thread Kito Cheng
Hi Jim:

Thanks for your review, committed with ASM_SPECS clean up.

> This has the side effect that we are now passing -march twice to cc1 and as, 
> but that should be harmless as the last one wins.
Yeah, I tried to find a way to remove the duplication but have not
found a good solution yet.

On Sun, Jun 21, 2020 at 5:37 AM Jim Wilson  wrote:
>
> On Fri, Jun 19, 2020 at 2:53 AM Kito Cheng  wrote:
> > * config/riscv/riscv.h (DRIVER_SELF_SPECS): New.
>
> This looks good to me.  This has the side effect that we are now
> passing -march twice to cc1 and as, but that should be harmless as the
> last one wins.  I think this makes the riscv_expand_arch call in
> ASM_SPECS redundant, but it isn't really hurting anything if we end up
> with extra unnecessary calls to riscv_expand_arch so that is an
> optional possible cleanup.
>
> Jim


Re: [PATCH] Treat { 0 } specially for structs with the designated_init attribute.

2020-06-21 Thread Asher Gordon via Gcc-patches
Hi Martin,

Thanks for your help.

Martin Sebor  writes:

> This can be a little confusing and I don't work with the front end
> stuff often enough to remember it so I always have to look it up.
> There's a TYPE_DECL that corresponds to the definition of the type
> that for user-defined types has a source location, otherwise, if T
> it's a TYPE_P(T), it doesn't.
>
> I think the TYPE_NAME(T) macro gets the TYPE_DECL for a type T.
> I find the best way to figure this out is to think of something
> similar to what you're trying to do (like an error or warning in
> this case) and look at/step through the code that implements it.

If I insert an assertion in the code, I find that 'constructor_type' is
indeed a TYPE_P, and TYPE_NAME doesn't work on it. If I try to use
TYPE_NAME, this happens:

$ install/bin/gcc -c -o test.o test.c
test.c:14:17: warning: positional initialization of field ‘foo’ in ‘struct 
S’ declared with ‘designated_init’ attribute [-Wdesignated-init]
   14 | struct S s2 = { 0, 0 };  /* should warn */
  | ^
test.c:14:17: note: (near initialization for ‘s2’)
test.c:14:8: internal compiler error: tree check: expected tree that 
contains ‘decl minimal’ structure, have ‘identifier_node’ in pop_init_level, at 
c/c-typeck.c:8790
   14 | struct S s2 = { 0, 0 };  /* should warn */
  |^
[backtrace]
$ cat -n gcc/c/c-typeck.c | grep -E -A 3 '^\s*8790\s'
  8790inform (DECL_SOURCE_LOCATION
  8791(TYPE_NAME
  8792 (constructor_type)),
  8793"in definition of %qT", constructor_type);

So it appears that TYPE_NAME is returning an IDENTIFIER_NODE. Strangely,
the gccint documentation says, referring to 'TYPE_NAME':

(Note this macro does _not_ return an 'IDENTIFIER_NODE', as you
might expect, given its name!)

> Unfortunately, attributes don't have locations (yet).

Hmm, well maybe I could implement that. I'm not very familiar with the
GCC source (this is my first patch), but I'll see if I can figure it
out. It would probably be useful for other warnings/errors too.

> The warning could have two notes, one pointing to the member and
> another pointing to its type.  It's a judgment call what's more
> important in each case.  It's usually straightforward to find the
> enclosing type given a note pointing to a member.

If it's not possible to point to the attribute itself, then this is
probably the next best thing. Still, it would be nice to be able to
point directly to the attribute...

> I was under the impression that GCC silently ignored attributes on
> type declarations and only respected them on definitions.  But it's
> also possible it's inconsistent (attribute handling is still a bit
> of a mess).

Yes, actually you're right. I tried defining a struct and then applying
an attribute to a later declaration, and it had no effect. Incidentally,
this seems to me to be confusing behavior, and should probably produce a
warning (or even an error), but that's another issue.

Thanks,
Asher

-- 
Violence is the last refuge of the incompetent.
-- Salvor Hardin
   
I prefer to send and receive mail encrypted. Please send me your
public key, and if you do not have my public key, please let me
know. Thanks.

GPG fingerprint: 38F3 975C D173 4037 B397  8095 D4C9 C4FC 5460 8E68


signature.asc
Description: PGP signature


Re: drop -aux{dir,base}, revamp -dump{dir,base}

2020-06-21 Thread Alexandre Oliva
On Jun 19, 2020, Tobias Burnus  wrote:

> Done; nvptx compiled but for AMDGCN I got a compile error:
> in one function 'argv_obstack' was lacking a 'cc_' prefix ('cc_argv_obstack'),
> see attached patch (vs. mainline, not vs. either of your patches).

Ah, I see, cut&pasto, different obstacks.  Thanks for fixing it.

> And there is an (unfixed) warning:
> config/gcn/mkoffload.c:535:9: warning: unused variable 'dumpbase'

Thanks, I've removed that.

> I additionally did run the test case manually → files.log for the
> produced files.

This is with -save-temps, right?  I've arranged to drop the
no-longer-necessary -save-temps from the test runs, but you didn't get
to experience it because of:

> Unfortunately, running the testsuite fails now with a tcl error:

> : error executing dg-final: unknown or ambiguous subcommand "set":

Interesting, in my test run (native only) I didn't trigger that problem.

+++ b/gcc/testsuite/lib/scanoffload.exp

+if [info set offload_target] {

The 'set' above should be 'exists'.

-- 
Alexandre Oliva, freedom fighterhe/himhttps://FSFLA.org/blogs/lxo/
Free Software Evangelist  Stallman was right, but he's left :(
GNU Toolchain Engineer   Live long and free, and prosper ethically


Re: [PATCH] PR 83938 Reduce memory consumption in stable_sort/inplace_merge

2020-06-21 Thread François Dumont via Gcc-patches

Gentle remider.



On 11/06/20 8:32 am, François Dumont wrote:

As we are on patching algos we still have this old one.

    From the original patch I only kept the memory optimization part 
as the new performance test was not showing good result for the other 
part to change pivot value. I also kept the small change in 
get_temporary_buffer even if I don't have strong feeling about it, it 
just make sure that we'll try to allocate 1 element as a last chance 
allocation.


    Note that there is still place for an improvement. If we miss 
memory on the heap we then use a recursive implementation which then 
rely on stack memory. I would be surprise that a system which miss 
heap memory would have no problem to allocate about the same on the 
stack so we will surely end up in a stack overflow. I still have this 
on my todo even if I already made several tries with no satisfying 
result in terms of performance.


    Tested under Linux x86_64.

Commit message:

    libstdc++: Limit memory allocation in stable_sort/inplace_merge 
(PR 83938)


    Reduce memory consumption in stable_sort/inplace_merge to what is 
used.


    Co-authored-by: François Dumont  

    libstdc++-v3/ChangeLog:

    2020-06-11  John Chang  
    François Dumont  

    PR libstdc++/83938
    * include/bits/stl_tempbuf.h (get_temporary_buffer): 
Change __len

    computation in the loop.
    * include/bits/stl_algo.h:
    (__inplace_merge): Take temporary buffer length from 
smallest range.

    (__stable_sort): Limit temporary buffer length.
    * testsuite/25_algorithms/inplace_merge/1.cc (test03): 
Test different

    pivot positions.
    * testsuite/performance/25_algorithms/stable_sort.cc: Test 
stable_sort

    under different heap memory conditions.
    * testsuite/performance/25_algorithms/inplace_merge.cc: New.

Ok to commit ?

François