[Bug target/87006] Stack Protection with Large File support

2018-08-18 Thread sch...@linux-m68k.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87006

--- Comment #2 from Andreas Schwab  ---
If you are looking for help in fixing your program you should ask on
gcc-h...@gcc.gnu.org.

[Bug target/86994] [9 regression] 64-bit gcc.target/i386/20040112-1.c FAILs

2018-08-18 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86994

Uroš Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-08-18
 CC||law at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Uroš Bizjak  ---
It is r263591:

2018-08-16  Vlad Lazar  

* expmed.h (canonicalize_comparison): New declaration.
* expmed.c (canonicalize_comparison, equivalent_cmp_code): New
function.
* expmed.c (emit_store_flag_1): Add call to canonicalize_comparison.
* optabs.c (prepare_cmp_insn): Likewise.
* rtl.h (unsigned_condition_p): New function which checks if a
comparison operator is unsigned.

That now expands with:

(insn 12 8 13 4 (set (reg:CCGC 17 flags)
(compare:CCGC (reg/v:QI 87 [ status ])
(const_int -1 [0x]))) "20040112-1.c":13 9
{*cmpqi_1}
 (nil))

instead of:

(insn 10 8 11 4 (set (reg:CCGOC 17 flags)
(compare:CCGOC (reg/v:QI 87 [ status ])
(const_int 0 [0]))) "20040112-1.c":13 5 {*cmpqi_ccno_1}
 (nil))

The canonicalization, introduced in r263591 does not universally benefit all
targets. I wonder why TARGET_CANONICALIZE_COMPARISON hook was not used instead.

[Bug tree-optimization/86844] [8/9 regression] wrong code caused by store merging pass

2018-08-18 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86844

Eric Botcazou  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-08-18
 CC||ebotcazou at gcc dot gnu.org
  Known to work||7.3.1
   Target Milestone|--- |8.3
Summary|wrong code generation   |[8/9 regression] wrong code
   |caused by store merging |caused by store merging
   |pass|pass
 Ever confirmed|0   |1
  Known to fail||8.2.1, 9.0

[Bug target/86989] ICE in rs6000_output_addr_const_extra, at config/rs6000/rs6000.c:20994

2018-08-18 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86989

Segher Boessenkool  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed|2018-08-17 00:00:00 |2018-08-18
   Assignee|unassigned at gcc dot gnu.org  |segher at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Segher Boessenkool  ---
Confirmed.  I have a patch.

[Bug target/86987] ICE in simplify_binary_operation_1, at simplify-rtx.c:3515 on ppc64le

2018-08-18 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86987

Segher Boessenkool  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed|2018-08-17 00:00:00 |2018-08-18
 Ever confirmed|0   |1

--- Comment #1 from Segher Boessenkool  ---
Confirmed.

[Bug target/87007] New: [8/9 Regression] 10% slowdown with -march=skylake-avx512

2018-08-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87007

Bug ID: 87007
   Summary: [8/9 Regression] 10% slowdown with
-march=skylake-avx512
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hjl.tools at gmail dot com
CC: skpgkp1 at gmail dot com
  Target Milestone: ---
Target: i386,x86-64

On Intel Skylake server, r262649 caused 10% slowdown for 538.imagick_r
in SPEC CPU 2017 when compiled with:

gcc -Ofast -march=skylake-avx512 -mfpmath=sse -fno-associative-math
-funroll-loops -flto

For

[hjl@gnu-cfl-1 skx-2]$ cat foo.i
extern float f;
extern double d;
extern int i;

void
foo (void)
{
  d = f;
  f = i;
}

r262649 turned on sse_partial_reg_dependency, which generates

vxorpd  %xmm0, %xmm0, %xmm0
vcvtss2sd   f(%rip), %xmm0, %xmm0
vmovsd  %xmm0, d(%rip)
vxorps  %xmm0, %xmm0, %xmm0
vcvtsi2ss   i(%rip), %xmm0, %xmm0
vmovss  %xmm0, f(%rip)
ret

instead of

vcvtss2sd   f(%rip), %xmm0, %xmm0
vmovsd  %xmm0, d(%rip)
vcvtsi2ss   i(%rip), %xmm0, %xmm0
vmovss  %xmm0, f(%rip)
ret

One "vxorpd %xmm0, %xmm0, %xmm0" is necessary.  But both

vxorps  %xmm0, %xmm0, %xmm0

and

vxorps  %xmm0, %xmm0, %xmm0

are bad for performance.

[Bug tree-optimization/87008] New: [8/9 Regression] gimple mem-to-mem assignment badly optimized

2018-08-18 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87008

Bug ID: 87008
   Summary: [8/9 Regression] gimple mem-to-mem assignment badly
optimized
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: glisse at gcc dot gnu.org
  Target Milestone: ---

Created attachment 44554
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44554&action=edit
preprocessed testcase

Original testcase posted at
https://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2018/08/msg00012.html

#include 

using Vec = Eigen::Matrix;

Vec f ()
{
  Vec sum = Vec::Zero();
  for (int i = 0; i < 1024; ++i)
  {
const Vec dirA = sum;
const Vec dirB = dirA;

sum += dirA.dot(dirB) * dirA;
  }
  return sum;
}

compiled on x86_64 with eigen 3.3.4, -DEIGEN_DONT_VECTORIZE -O3 .

The .optimized dump contains

  MEM[(struct DenseStorage *)&dirA].m_data = MEM[(const struct DenseStorage
&)sum_5(D)].m_data;
  dirA_18 = MEM[(struct plain_array *)&dirA];
  dirA$8_3 = MEM[(struct plain_array *)&dirA + 8B];
  MEM[(struct DenseStorage *)&dirB].m_data = MEM[(const struct DenseStorage
&)&dirA].m_data;
  dirB_35 = MEM[(struct plain_array *)&dirB];
  dirB$8_48 = MEM[(struct plain_array *)&dirB + 8B];

which translates to

movdqu  (%rax), %xmm1
movaps  %xmm1, -40(%rsp)
movsd   -40(%rsp), %xmm2
movsd   -32(%rsp), %xmm0
movaps  %xmm1, -24(%rsp)
movsd   -16(%rsp), %xmm1
movsd   -24(%rsp), %xmm5

This is clearly quite bad, we should for instance CSE dirA_18 and dirB_35. This
is yet another case where gimple optimizers have a hard time handling
mem-to-mem assignment. I think we have relevant code in vn_reference_lookup_3
(case 5 in particular). ESRA used to help.

I would also have expected better from RTL optimization, but that may be too
optimistic.

[Bug target/86994] [9 regression] 64-bit gcc.target/i386/20040112-1.c FAILs

2018-08-18 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86994

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||missed-optimization

--- Comment #2 from Andrew Pinski  ---
>The canonicalization, introduced in r263591 does not universally benefit all 
>targets.
As mentioned in the thread, there is no canonicalization but there a checking
of the cost.  If x86 cost model is incorrect, you would get the incorrect thing
here.

[Bug target/87007] [8/9 Regression] 10% slowdown with -march=skylake-avx512

2018-08-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87007

H.J. Lu  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2018-08-18
   Assignee|unassigned at gcc dot gnu.org  |hjl.tools at gmail dot 
com
 Ever confirmed|0   |1

--- Comment #1 from H.J. Lu  ---
Created attachment 44555
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44555&action=edit
I am testing this patch

[Bug tree-optimization/87009] New: Can't find XOR pattern applying De Morgan sequentially

2018-08-18 Thread mcccs at gmx dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87009

Bug ID: 87009
   Summary: Can't find XOR pattern applying De Morgan sequentially
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mcccs at gmx dot com
  Target Milestone: ---

Optimization: -Ofast

Suggested debugging layout: https://godbolt.org/g/ERWctt

int xor_int(int a, int b) {
...
}

Don't work:

int x = ~(a|b);
return ~(x|a)|~(x|b);

return ~(~(a|b)|a)|~(~(a|b)|b);

int x = ~a&~b;
return ~((x|a)&(x|b));

return ~(((~a&~b)|a)&((~a&~b)|b));

int x = ~a&~b;
return ~(x|a)|~(x|b);

return ~((~a&~b)|a)|~((~a&~b)|b);

int x = ~a&~b;
return (~x&~a)|(~x&~b);

int x = ~a&~b;
return ~x&(~a|~b);

Those two work:

return (~(~a&~b)&~a)|(~(~a&~b)&~b);

return ~(~a&~b)&(~a|~b);

A different calculation:
Don't work:

return ~(~(~a&b)&~(a&~b));

return ~(~(~a|~b)|~(a|b));

return ~((a&b)|~(a|b));

This works:

return ~(a&b)&(a|b);

Different calculation:

return ~((a|~b)&(~a|b));

return ~(a|~b)|~(~a|b);

return (~a&b)|~(~a|b);

This works:

return (~a&b)|(a&~b);

SUGGESTED SOLUTTION

At match.pd:774 There's the De Morgan law
for bitwise AND but there isn't one for OR.

https://github.com/gcc-mirror/gcc/blob/fe4311f/gcc/match.pd#L774

No one noticed this, because it can (somehow) transform ~(~a|b) to a&~b
sometimes, (for example, if BMI instructions is enabled, it can use the 'andn'
instruction which calculates a&~b) If I understand it correctly, it only works
if it's not simplified a different way until RTL optimization comes.

/* ~(~a | b)  -->  a & ~b  */
(simplify
 (bit_not (bit_ior:cs (bit_not @0) @1))
 (bit_and @0 (bit_not @1)))

[Bug tree-optimization/87009] Can't find XOR pattern applying De Morgan sequentially

2018-08-18 Thread mcccs at gmx dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87009

--- Comment #1 from MCCCS  ---
Proposed patch: 

Index: gcc/match.pd
===
--- gcc/match.pd(revision 263646)
+++ gcc/match.pd(working copy)
@@ -776,6 +776,11 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
  (bit_not (bit_and:cs (bit_not @0) @1))
  (bit_ior @0 (bit_not @1)))

+/* ~(~a | b)  -->  a & ~b  */
+(simplify
+ (bit_not (bit_ior:cs (bit_not @0) @1))
+ (bit_and @0 (bit_not @1)))
+
 /* Simplify (~X & Y) to X ^ Y if we know that (X & ~Y) is 0.  */
 #if GIMPLE
 (simplify
Index: gcc/testsuite/g++.dg/pr87009.C
===
--- gcc/testsuite/g++.dg/pr87009.C  (nonexistent)
+++ gcc/testsuite/g++.dg/pr87009.C  (working copy)
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-original" } */
+/* { dg-final { scan-tree-dump-times " ^ " 3 "original" } */
+
+int f1 (int x, int s)
+{
+  return ~(~(x|s)|x)|~(~(x|s)|s);
+}
+
+int f2 (int x, int s)
+{
+  return ~(~(~x&s)&~(x&~s));
+}
+
+int f3 (int x, int s)
+{
+  return ~((x|~s)&(~x|s));
+}

[Bug tree-optimization/87009] Can't find XOR pattern applying De Morgan sequentially

2018-08-18 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87009

--- Comment #2 from Marc Glisse  ---
Yes, there are still some transformations missing to canonicalize all binary
boolean functions. You mention ~(~a | b). We also need (a|~b)&(~a|b) and the
same with ^ in the middle. Possibly others (ideally, this list of
transformations would be generated by a computer, or at least more
systematically).

Posting a tested patch to the gcc-patches mailing list would be welcome.

[Bug target/87010] New: FAIL: gcc.dg/torture/20180712-1.c -O1 (test for excess errors)

2018-08-18 Thread danglin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87010

Bug ID: 87010
   Summary: FAIL: gcc.dg/torture/20180712-1.c   -O1  (test for
excess errors)
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: danglin at gcc dot gnu.org
  Target Milestone: ---
  Host: hppa*-*-*
Target: hppa*-*-*
 Build: hppa*-*-*

Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/
/te
st/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c 
-fno-diagnostics-show-
caret -fno-diagnostics-show-line-numbers -fdiagnostics-color=never-O1 
-fPIC
  -lm-o ./20180712-1.exe(timeout = 300)
spawn /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/
/test/gnu/gcc/gc
c/gcc/testsuite/gcc.dg/torture/20180712-1.c -fno-diagnostics-show-caret
-fno-diagnostics-show-line-numbers -fdiagnostics-color=never -O1 -fPIC -lm -o
./20180712-1.exe
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c: In function 'foo':
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c:13:3: error: can't
find a register in class 'R1_REGS' while reloading 'asm'
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c:13:3: error: 'asm'
operand has impossible constraints
compiler exited with status 1
output is:
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c: In function 'foo':
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c:13:3: error: can't
find a register in class 'R1_REGS' while reloading 'asm'
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c:13:3: error: 'asm'
operand has impossible constraints

FAIL: gcc.dg/torture/20180712-1.c   -O1  (test for excess errors)

Similar fails:
FAIL: gcc.dg/torture/20180712-1.c   -O2  (test for excess errors)
UNRESOLVED: gcc.dg/torture/20180712-1.c   -O2  compilation failed to produce
executable
FAIL: gcc.dg/torture/20180712-1.c   -O2 -flto -fno-use-linker-plugin
-flto-partition=none  (test for excess errors)
UNRESOLVED: gcc.dg/torture/20180712-1.c   -O2 -flto -fno-use-linker-plugin
-flto-partition=none  compilation failed to produce executable
FAIL: gcc.dg/torture/20180712-1.c   -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects  (test for excess errors)
UNRESOLVED: gcc.dg/torture/20180712-1.c   -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects  compilation failed to produce executable
FAIL: gcc.dg/torture/20180712-1.c   -O3 -g  (test for excess errors)
UNRESOLVED: gcc.dg/torture/20180712-1.c   -O3 -g  compilation failed to produce
executable
FAIL: gcc.dg/torture/20180712-1.c   -Os  (test for excess errors)
UNRESOLVED: gcc.dg/torture/20180712-1.c   -Os  compilation failed to produce
executable

Test passes at -O0.

I tend to think this test needs to be skipped on hppa because it generally
isn't possible for reload to handle the addresses of two or more symbols in
asm.

[Bug tree-optimization/71625] missing strlen optimization on different array initialization style

2018-08-18 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71625

Bernd Edlinger  changed:

   What|Removed |Added

 CC||bernd.edlinger at hotmail dot 
de

--- Comment #20 from Bernd Edlinger  ---
it is possible that the poly type returns now a different type class
in __builtin_classify_type:

@defmac __builtin_classify_type (@var{object})
Since each machine has its own conventions for which data types are
passed in which kind of register, your implementation of @code{va_arg}
has to embody these conventions.  The easiest way to categorize the
specified data type is to use @code{__builtin_classify_type} together
with @code{sizeof} and @code{__alignof__}.

@code{__builtin_classify_type} ignores the value of @var{object},
considering only its data type.  It returns an integer describing what
kind of type that is---integer, floating, pointer, structure, and so on.

The file @file{typeclass.h} defines an enumeration that you can use to
interpret the values of @code{__builtin_classify_type}.
@end defmac

builtins.c-/* Used by expand_builtin_classify_type and
fold_builtin_classify_type.  */
builtins.c-
builtins.c-static enum type_class
builtins.c-type_to_class (tree type)
builtins.c-{
builtins.c-  switch (TREE_CODE (type))
builtins.c-{
builtins.c-case VOID_TYPE: return void_type_class;
builtins.c-case INTEGER_TYPE:  return integer_type_class;
builtins.c-case ENUMERAL_TYPE: return enumeral_type_class;
builtins.c-case BOOLEAN_TYPE:  return boolean_type_class;
builtins.c-case POINTER_TYPE:  return pointer_type_class;
builtins.c-case REFERENCE_TYPE:   return reference_type_class;
builtins.c-case OFFSET_TYPE:   return offset_type_class;
builtins.c-case REAL_TYPE: return real_type_class;
builtins.c-case COMPLEX_TYPE:  return complex_type_class;
builtins.c-case FUNCTION_TYPE: return function_type_class;
builtins.c-case METHOD_TYPE:   return method_type_class;
builtins.c-case RECORD_TYPE:   return record_type_class;
builtins.c-case UNION_TYPE:
builtins.c-case QUAL_UNION_TYPE:  return union_type_class;
builtins.c:case ARRAY_TYPE:return (TYPE_STRING_FLAG (type)
builtins.c-? string_type_class :
array_type_class);
builtins.c-case LANG_TYPE: return lang_type_class;
builtins.c-default:return no_type_class;
builtins.c-}
builtins.c-}
builtins.c-
builtins.c-/* Expand a call EXP to __builtin_classify_type.  */
builtins.c-
builtins.c-static rtx
builtins.c-expand_builtin_classify_type (tree exp)
builtins.c-{
builtins.c-  if (call_expr_nargs (exp))
builtins.c-return GEN_INT (type_to_class (TREE_TYPE (CALL_EXPR_ARG (exp,
0;
builtins.c-  return GEN_INT (no_type_class);
builtins.c-}

[Bug tree-optimization/87011] New: [9 Regression] partially dead memset before strcpy not eliminated

2018-08-18 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87011

Bug ID: 87011
   Summary: [9 Regression] partially dead memset before strcpy not
eliminated
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

In released versions of GCC the memset call would be optimized by DSE to memset
(_6, 0, 12).  On trunk, however, this is not done:

$ cat f.c && gcc -O2 -S -Wall -fdump-tree-optimized=/dev/stdout f.c
struct S { char a[4]; void (*pf)(void); };

void f (struct S *p)
{
  __builtin_memset (p, 0, sizeof *p);
  __builtin_strcpy (p->a, "123");
}
;; dump 228: optimized (enabled by -ftree-optimized)
;; Function f (f, funcdef_no=0, decl_uid=1910, cgraph_uid=1, symbol_order=0)

f (struct S * p)
{
  char[4] * _1;

   [local count: 1073741825]:
  __builtin_memset (p_3(D), 0, 16);
  _1 = &p_3(D)->a;
  __builtin_memcpy (_1, "123", 4); [tail call]
  return;
}

[Bug tree-optimization/87011] [9 Regression] partially dead memset before strcpy not eliminated

2018-08-18 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87011

Martin Sebor  changed:

   What|Removed |Added

   Keywords||missed-optimization
 CC||law at gcc dot gnu.org

--- Comment #1 from Martin Sebor  ---
Bisection points to r262841:

r262841 | law | 2018-07-17 19:54:10 -0400 (Tue, 17 Jul 2018) | 2 lines

PR tree-optimization/86010
* tree-ssa-dse.c (compute_trims): Fix typo/thinko.

The optimization was introduced in r245688 (in GCC 7).

[Bug c++/81721] precompiled header : internal compiler error: Segmentation fault

2018-08-18 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81721

Eric Gallager  changed:

   What|Removed |Added

 CC||bonzini at gnu dot org,
   ||geoffk at gcc dot gnu.org,
   ||jsm28 at gcc dot gnu.org

--- Comment #4 from Eric Gallager  ---
(In reply to Juro Bystricky from comment #0)
> 
> After some debugging, I found the segmentation fault was caused in
> libcpp/lex.c (cpp_spell_token):
> 
>   case SPELL_IDENT:
> if (forstring)
>   {
>   memcpy (buffer, NODE_NAME (token->val.node.spelling),
>NODE_LEN (token->val.node.spelling));
>   buffer += NODE_LEN (token->val.node.spelling);
>   }
> 

svn blame for that part shows:

 82199bonzini case SPELL_IDENT:
 96333 geoffk   if (forstring)
 96333 geoffk   {
217202  jsm28 memcpy (buffer, NODE_NAME (token->val.node.spelling),
217202  jsm28 NODE_LEN (token->val.node.spelling));
217202  jsm28 buffer += NODE_LEN (token->val.node.spelling);
 96333 geoffk   }

cc-ing them.

[Bug c++/81830] missing Wunused-local-typedef on a typedef of an unnamed enum or struct

2018-08-18 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81830

Eric Gallager  changed:

   What|Removed |Added

 CC||dmalcolm at gcc dot gnu.org,
   ||dodji at gcc dot gnu.org

--- Comment #3 from Eric Gallager  ---
cc-ing diagnostics maintainers

[Bug c++/86981] Add Clang's -Wpessimizing-move warning

2018-08-18 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86981

Marek Polacek  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org

[Bug c++/86982] Make -Wreturn-local-addr know about std::move and std::forward

2018-08-18 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86982

Marek Polacek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2018-08-18
 CC||mpolacek at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org
 Ever confirmed|0   |1

[Bug c++/87012] New: [Regression] ICE in verify_unstripped_args_1

2018-08-18 Thread v.reshetnikov at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87012

Bug ID: 87012
   Summary: [Regression] ICE in verify_unstripped_args_1
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: v.reshetnikov at gmail dot com
  Target Milestone: ---

/* BEGIN SOURCE */
template
using ref = T&;

int x;

template class T, T>
struct X { };

struct Y : X { };
/** END SOURCE **/

: In instantiation of 'struct X':
:9:12:   required from here
:7:10: internal compiler error: in verify_unstripped_args_1, at
cp/pt.c:1155
7 | struct X { };
  |  ^
Compiler returned: 1

Compiles fine with GCC 8.2 and Clang.

[Bug bootstrap/87013] New: xgcc: fatal error: no input files

2018-08-18 Thread mfe at live dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87013

Bug ID: 87013
   Summary: xgcc: fatal error: no input files
   Product: gcc
   Version: 8.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mfe at live dot de
  Target Milestone: ---

Created attachment 44556
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44556&action=edit
config.log of gcc-8.2.0-compiled\sparc-linux\libgcc

he exact version of GCC:
gcc-8.2.0

the system type:
NetgearReadyNAS Duo
(http://wiki.dietpc.org/index.php/DIET-PC_on_SPARC_ReadyNAS)

the options given when GCC was configured/built:
../gcc-8.2.0/configure --prefix=/opt/gcc-8.2/ --enable-languages=c,c++,go
--with-mpc=/usr/local --with-mpfr=/usr/local --with-gmp=/usr/local
--with-isl=/usr/local/ --disable-doc --host=sparc-linux --build=sparc-linux
--disable-libstdcxx-pch --disable-linux-futex --disable-libsanitizer
--disable-libcilkrts --disable-libitm --disable-libitm CC=/opt/gcc-7.3/bin/gcc
CXX=/opt/gcc-7.3/bin/g++ && /usr/local/bin/make


## - ##
## Platform. ##
## - ##

hostname = nas-02-90-38
uname -m = padre
uname -r = 2.6.17.14ReadyNAS
uname -s = Linux
uname -v = #1 Wed Jun 20 20:08:20 PDT 2012

the complete command line that triggers the bug;
/usr/local/bin/make

the compiler output (error messages, warnings, etc.);
[...]
esac
mv tmp2-tm.texi tmp-tm.texi
/bin/sh ../../gcc-8.2.0/gcc/../move-if-change tmp-tm.texi tm.texi
if [ xinfo = xinfo ]; then \
makeinfo --split-size=500 --split-size=500 --split-size=500
--no-split -I . -I ../../gcc-8.2.0/gcc/doc \
-I ../../gcc-8.2.0/gcc/doc/include -o doc/gccint.info
../../gcc-8.2.0/gcc/doc/gccint.texi; \
fi
if [ xinfo = xinfo ]; then \
makeinfo --split-size=500 --split-size=500 --split-size=500
--no-split -I ../../gcc-8.2.0/gcc/doc \
-I ../../gcc-8.2.0/gcc/doc/include -o doc/gccinstall.info
../../gcc-8.2.0/gcc/doc/install.texi; \
fi
if [ xinfo = xinfo ]; then \
makeinfo --split-size=500 --split-size=500 --split-size=500
--no-split -I . -I ../../gcc-8.2.0/gcc/doc \
-I ../../gcc-8.2.0/gcc/doc/include -o doc/cppinternals.info
../../gcc-8.2.0/gcc/doc/cppinternals.texi; \
fi
echo timestamp > gcc.pod
perl ../../gcc-8.2.0/gcc/../contrib/texi2pod.pl
../../gcc-8.2.0/gcc/doc/invoke.texi > gcc.pod
echo timestamp > doc/gcc.1
(pod2man --center="GNU" --release="gcc-8.2.0" --date=2018-07-26 --section=1
gcc.pod > doc/gcc.1.T$$ && \
mv -f doc/gcc.1.T$$ doc/gcc.1) || \
(rm -f doc/gcc.1.T$$ && exit 1)
cp doc/gcc.1 doc/g++.1
/media/gcc-8.2.0-compiled/./gcc/xgcc -B/media/gcc-8.2.0-compiled/./gcc/ -xc
-nostdinc /dev/null -S -o /dev/null
-fself-test=../../gcc-8.2.0/gcc/testsuite/selftests
-fself-test: 40032 pass(es) in 7.23 seconds
echo timestamp > s-selftest-c
rm gcc.pod
make[3]: Leaving directory '/c/media/gcc-8.2.0-compiled/gcc'
mkdir -p -- sparc-linux/libgcc
Checking multilib configuration for libgcc...
Configuring stage 1 in sparc-linux/libgcc
configure: creating cache ./config.cache
checking build system type... sparc-unknown-linux-gnu
checking host system type... sparc-unknown-linux-gnu
checking for --enable-version-specific-runtime-libs... no
checking for a BSD-compatible install... /usr/bin/install -c
checking for gawk... mawk
checking for sparc-linux-ar... ar
checking for sparc-linux-lipo... lipo
checking for sparc-linux-nm... /media/gcc-8.2.0-compiled/./gcc/nm
checking for sparc-linux-ranlib... ranlib
checking for sparc-linux-strip... strip
checking whether ln -s works... yes
checking for sparc-linux-gcc... /media/gcc-8.2.0-compiled/./gcc/xgcc
-B/media/gcc-8.2.0-compiled/./gcc/ -B/opt/gcc-8.2/sparc-linux/bin/
-B/opt/gcc-8.2/sparc-linux/lib/ -isystem /opt/gcc-8.2/sparc-linux/include
-isystem /opt/gcc-8.2/sparc-linux/sys-include
checking for suffix of object files... configure: error: in
`/media/gcc-8.2.0-compiled/sparc-linux/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[2]: *** [Makefile:18005: configure-stage1-target-libgcc] Error 1
make[2]: Leaving directory '/c/media/gcc-8.2.0-compiled'
make[1]: *** [Makefile:23279: stage1-bubble] Error 2
make[1]: Leaving directory '/c/media/gcc-8.2.0-compiled'
make: *** [Makefile:941: all] Error 2