[Bug c/7652] -Wswitch-break : Warn if a switch case falls through

2016-07-30 Thread sezeroz at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=7652

Ozkan Sezer  changed:

   What|Removed |Added

 CC||sezeroz at gmail dot com

--- Comment #53 from Ozkan Sezer  ---
(In reply to Marek Polacek from comment #52)
> Author: mpolacek
> Date: Fri Jul 29 12:39:25 2016
> New Revision: 238864
> 
> URL: https://gcc.gnu.org/viewcvs?rev=238864&root=gcc&view=rev
> Log:
>   PR c/7652
>   * config/i386/i386.c (ix86_expand_args_builtin): Add break.
>   (ix86_expand_round_builtin): Likewise.
> 
> Modified:
> trunk/gcc/ChangeLog
> trunk/gcc/config/i386/i386.c

Will this be applied to 4.9 branch? The same issue is there too.

[Bug fortran/72755] Internal compiler error: in gfc_get_symbol_decl, at fortran/trans-decl.c:1369

2016-07-30 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72755

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-30
 Blocks||68241
 Ever confirmed|0   |1

--- Comment #7 from Dominique d'Humieres  ---
Confirmed from 4.9 up to trunk. "Deferred-length character component" not
supported on 4.8. Related to/duplicate of pr70864?


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68241
[Bug 68241] [meta-bug] Deferred-length character

[Bug libgomp/71781] Severe performance degradation of short parallel for loop on hardware with lots of cores

2016-07-30 Thread jhogg41 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71781

Jonathan Hogg  changed:

   What|Removed |Added

 CC||jhogg41 at gmail dot com

--- Comment #1 from Jonathan Hogg  ---
We also see similar behaviour when running task-based (as opposed to parallel
for) code. When the number of tasks is much smaller than the number of cores,
most time is spent in libgomp spinning. Presumably there is too much contention
on the work-queue lock. We're running on 28 real cores (2x14 core intel
haswell-EP chips).

If we look out our task profile, we see very little of the time is spent inside
our task code, and this is confirmed by profile data from perf:
  27.60%  spral_ssids  libgomp.so.1.0.0  [.] gomp_mutex_lock_slow
   6.96%  spral_ssids  libgomp.so.1.0.0  [.] gomp_team_barrier_wait_end
   3.78%  spral_ssids  [kernel.kallsyms] [k] _spin_lock_irq
   2.91%  spral_ssids  [kernel.kallsyms] [k] smp_invalidate_interrupt
   2.21%  spral_ssids  spral_ssids   [.] __CreateCoarseGraphNoMask
   2.18%  spral_ssids  [kernel.kallsyms] [k] _spin_lock
   2.05%  spral_ssids  libmkl_avx2.so[.] mkl_blas_avx2_dgemm_kernel_0
   1.99%  spral_ssids  spral_ssids   [.] __FM_2WayNodeRefine_OneSided
   1.78%  spral_ssids  libgomp.so.1.0.0  [.] gomp_sem_wait_slow
   1.64%  spral_ssids  libc-2.12.so  [.] __GI_strtod_l_internal

Here's an example of what we're seeing:

Small problems (much less work than cores):
4 cores / 28 cores times in seconds
0.02 / 0.17
0.20 / 0.60
0.20 / 0.58
0.14 / 0.63
0.75 / 2.37

Bigger problems (sufficient work exists):
4 cores / 28 cores times in seconds
48.52 / 22.16
153.49 / 61.77
140.89 / 54.51
189.75 / 71.43

[Bug fortran/72709] Incorrect assignment of allocatable character array used as component of derived type

2016-07-30 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72709

Dominique d'Humieres  changed:

   What|Removed |Added

   Keywords||wrong-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-30
 Blocks||68241
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres  ---
Confirmed from 5 up to trunk (7.0). The code compiled with 4.9.4 gives

 header(   1 ) = 
 header(   2 ) = 
 header(   3 ) = 

Deferred-length character is not supported by gfortran 4.8.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68241
[Bug 68241] [meta-bug] Deferred-length character

[Bug fortran/68147] Potential incorrect code generation for string self-assignment

2016-07-30 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68147

--- Comment #12 from Dominique d'Humieres  ---
> When I have a moment, I intend to fix 5- and 6-branches.

It would be nice to have it for the next releases. Do you want me to do the
back port?

[Bug fortran/72743] ICE in get_constraint_for_ssa_var, at tree-ssa-structalias.c:2958

2016-07-30 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72743

--- Comment #2 from Dominique d'Humieres  ---
WORKSFORME on x86_64-apple-darwin15 for all the revisions (from 4.8 up to
trunk: 7.0) and options I have tried.

[Bug fortran/72743] ICE in get_constraint_for_ssa_var, at tree-ssa-structalias.c:2958

2016-07-30 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72743

--- Comment #3 from Dominique d'Humieres  ---
> WORKSFORME on x86_64-apple-darwin15 for all the revisions (from 4.8
> up to trunk: 7.0) and options I have tried.

with/without -fopenacc for gcc-5 up to trunk.

[Bug fortran/72744] ICE in verify_ssa, at tree-ssa.c:1039

2016-07-30 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72744

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-30
 Ever confirmed|0   |1

--- Comment #2 from Dominique d'Humieres  ---
The ICE requires explicit or implicit --enable-checking=yes from 6.1 and trunk
(7.0).
With 4.9 and 5 I get

x(:) = x(n:1:-1)
 ^
internal compiler error: in omp_add_variable, at gimplify.c:5639/5497

[Bug fortran/72741] Fortran OpenACC routine directive doesn't properly handle clauses specifying the level of parallelism

2016-07-30 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72741

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-30
 Ever confirmed|0   |1

--- Comment #2 from Dominique d'Humieres  ---
Confirmed.

[Bug rtl-optimization/71779] [5/6/7 regression] isl miscompiled with -mabi=ilp32

2016-07-30 Thread sch...@linux-m68k.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71779

--- Comment #18 from Andreas Schwab  ---
With the patches in #16 and #17 bootstrap was successful and the isl testsuite
passes.

[Bug c/72750] Not possible to use -fno-builtin to suppress optimization of some standard functions like atoi

2016-07-30 Thread david.l.kreitzer at intel dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72750

--- Comment #3 from David Kreitzer  ---
Thanks for the prompt responses.

Please consider the fact that the same behavior also occurs with "gcc -S -O2
-ffreestanding t.c".

Wouldn't you agree that using the inline implementation of atoi from the
headers is a clear violation of freestanding semantics?

[Bug c++/72759] New: ICE on invalid C++ code on x86_64-linux-gnu (Segmentation fault, tree_class_check, ocp_convert)

2016-07-30 Thread chengniansun at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72759

Bug ID: 72759
   Summary: ICE on invalid C++ code on x86_64-linux-gnu
(Segmentation fault, tree_class_check, ocp_convert)
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: chengniansun at gmail dot com
  Target Milestone: ---

$ g++-trunk  -v
Using built-in specs.
COLLECT_GCC=g++-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/usr/local/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 7.0.0 20160730 (experimental) [trunk revision 238903] (GCC) 
$ g++-trunk small.C -std=c++14
small.C: In static member function ‘static void Specializer::A<
>::InnerMemberFn()’:
small.C:14:39: error: ‘SpecMbrFnPtr’ was not declared in this scope
   Spec ErrorSite = Spec::SpecMbrFnPtr;
   ^~~~
small.C: In instantiation of ‘static void Specializer::A<
>::InnerMemberFn() [with unsigned int  = 0u]’:
small.C:5:26:   required from here
small.C:14:8: internal compiler error: Segmentation fault
   Spec ErrorSite = Spec::SpecMbrFnPtr;
^
0xdb298f crash_signal
../../gcc-source-trunk/gcc/toplev.c:335
0x7f5a9d tree_class_check(tree_node*, tree_code_class, char const*, int, char
const*)
../../gcc-source-trunk/gcc/tree.h:3145
0x7f5a9d ocp_convert(tree_node*, tree_node*, int, int, int)
../../gcc-source-trunk/gcc/cp/cvt.c:859
0x8049aa expand_default_init
../../gcc-source-trunk/gcc/cp/init.c:1685
0x8049aa expand_aggr_init_1
../../gcc-source-trunk/gcc/cp/init.c:1863
0x8051e4 build_aggr_init(tree_node*, tree_node*, int, int)
../../gcc-source-trunk/gcc/cp/init.c:1602
0x69ba94 build_aggr_init_full_exprs
../../gcc-source-trunk/gcc/cp/decl.c:6004
0x69ba94 check_initializer
../../gcc-source-trunk/gcc/cp/decl.c:6151
0x6bbb2e cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
../../gcc-source-trunk/gcc/cp/decl.c:6856
0x6f0171 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc-source-trunk/gcc/cp/pt.c:15327
0x6ec644 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc-source-trunk/gcc/cp/pt.c:15216
0x6ecb22 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc-source-trunk/gcc/cp/pt.c:15401
0x6ea420 instantiate_decl(tree_node*, int, bool)
../../gcc-source-trunk/gcc/cp/pt.c:22133
0x732729 instantiate_pending_templates(int)
../../gcc-source-trunk/gcc/cp/pt.c:22252
0x778111 c_parse_final_cleanups()
../../gcc-source-trunk/gcc/cp/decl2.c:4601
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
$ 
$ cat small.C
template  struct SpecPerType;
class Specializer {
  public:  template  static void MbrFnTempl();
  template  struct A { static void InnerMemberFn(); };
  void Trigger() { A<0>::InnerMemberFn; }
};
template <> struct SpecPerType {
  using FnType = void *;
  template 
  static constexpr FnType SpecMbrFnPtr = Specializer::MbrFnTempl;
};
template  void Specializer::A::InnerMemberFn() {
  using Spec = SpecPerType;
  Spec ErrorSite = Spec::SpecMbrFnPtr;
}
$

[Bug fortran/68147] Potential incorrect code generation for string self-assignment

2016-07-30 Thread paul.richard.thomas at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68147

--- Comment #13 from paul.richard.thomas at gmail dot com  ---
Dear Dominique,

With one thing and another, I completely forgot about the backport.
Yes, please do. I am not able to do commits fo the next week.

Thanks

Paul

On 30 July 2016 at 11:26, dominiq at lps dot ens.fr
 wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68147
>
> --- Comment #12 from Dominique d'Humieres  ---
>> When I have a moment, I intend to fix 5- and 6-branches.
>
> It would be nice to have it for the next releases. Do you want me to do the
> back port?
>
> --
> You are receiving this mail because:
> You are on the CC list for the bug.

[Bug fortran/72755] Internal compiler error: in gfc_get_symbol_decl, at fortran/trans-decl.c:1369

2016-07-30 Thread fmartinez at gmv dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72755

--- Comment #8 from Fran Martinez Fadrique  ---
Thanks for the quick check.
Sorry for the lengthy modules but I could not figure out the precise location
of the problema within m_messages.f03.
Is there a posible work around at hand?
Thanks,
Fran

[Bug c/72750] Not possible to use -fno-builtin to suppress optimization of some standard functions like atoi

2016-07-30 Thread sch...@linux-m68k.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72750

--- Comment #4 from Andreas Schwab  ---
 is not a standard part of a freestanding implementation.

[Bug fortran/71730] [5/6/7 Regression] ICE when character length specification uses an undefined variable

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71730

--- Comment #3 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Sat Jul 30 16:19:14 2016
New Revision: 238904

URL: https://gcc.gnu.org/viewcvs?rev=238904&root=gcc&view=rev
Log:
2016-07-30  Steven G. Kargl  

PR fortran/71730
* decl.c (char_len_param_value): Check return value of
gfc_reduce_init_expr().

2016-07-30  Steven G. Kargl  

PR fortran/71730
* gfortran.dg/pr71730.f90: New test.
* gfortran.dg/bounds_check_strlen_2.f90: Fix invalid code.
* gfortran.dg/array_constructor_27.f03: Update dg-error message.
* gfortran.dg/array_constructor_26.f03: Ditto.

Added:
trunk/gcc/testsuite/gfortran.dg/pr71730.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/decl.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/array_constructor_26.f03
trunk/gcc/testsuite/gfortran.dg/array_constructor_27.f03
trunk/gcc/testsuite/gfortran.dg/bounds_check_strlen_2.f90

[Bug fortran/71730] [5/6/7 Regression] ICE when character length specification uses an undefined variable

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71730

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|5.5 |7.0

--- Comment #4 from kargl at gcc dot gnu.org ---
fixed on trunk.

[Bug fortran/70006] Duplicate errors "label not defined"

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70006

--- Comment #8 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Sat Jul 30 18:18:49 2016
New Revision: 238905

URL: https://gcc.gnu.org/viewcvs?rev=238905&root=gcc&view=rev
Log:
2016-07-30  Steven G. Kargl  

PR fortran/70006
* io.c (gfc_resolve_dt): Use correct locus.
* resolve.c (resolve_branch): Ditto.

2016-07-30  Steven G. Kargl  

PR fortran/70006
* gfortran.dg/pr70006.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/pr70006.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/io.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog

[Bug fortran/70006] Duplicate errors "label not defined"

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70006

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |kargl at gcc dot gnu.org
   Target Milestone|--- |7.0

--- Comment #9 from kargl at gcc dot gnu.org ---
fixed on trunk

[Bug fortran/69962] ICE on missing parameter attribute, in gfc_set_constant_character_len

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69962

--- Comment #4 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Sat Jul 30 19:24:49 2016
New Revision: 238906

URL: https://gcc.gnu.org/viewcvs?rev=238906&root=gcc&view=rev
Log:
2016-07-30  Steven G. Kargl  

PR fortran/69962
* decl.c (gfc_set_constant_character_len):  if expr is not
constant issue an error instead of an ICE.


2016-07-30  Steven G. Kargl  

PR fortran/69962
* gfortran.dg/pr69962.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/pr69962.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/decl.c
trunk/gcc/testsuite/ChangeLog

[Bug fortran/69962] ICE on missing parameter attribute, in gfc_set_constant_character_len

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69962

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |kargl at gcc dot gnu.org
   Target Milestone|--- |7.0

--- Comment #5 from kargl at gcc dot gnu.org ---
fixed on trunk.

[Bug c++/72756] Using an enum as a constant expression via dot operator should not compile.

2016-07-30 Thread claas.bontus at web dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72756

--- Comment #2 from Claas  ---
No. See the live demo at
http://coliru.stacked-crooked.com/a/79f0d052864fec19

[Bug fortran/69867] ICE on initializing character in type with array of incompatible data

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69867

--- Comment #6 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Sat Jul 30 20:05:10 2016
New Revision: 238907

URL: https://gcc.gnu.org/viewcvs?rev=238907&root=gcc&view=rev
Log:
2016-07-30  Steven G. Kargl  

PR fortran/69867
* decl.c (build_struct): Ensure that pointers point to something.

2016-07-30  Steven G. Kargl  

PR fortran/69867
* gfortran.dg/pr69867.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/pr69867.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/decl.c
trunk/gcc/testsuite/ChangeLog

[Bug fortran/69867] ICE on initializing character in type with array of incompatible data

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69867

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |kargl at gcc dot gnu.org
   Target Milestone|--- |7.0

--- Comment #7 from kargl at gcc dot gnu.org ---
fixed on trunk

[Bug other/70426] decl_expr contains too little information

2016-07-30 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70426

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Andrew Pinski  ---
.

*** This bug has been marked as a duplicate of bug 70425 ***

[Bug other/70425] decl_expr contains too little information

2016-07-30 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70425

--- Comment #1 from Andrew Pinski  ---
*** Bug 70426 has been marked as a duplicate of this bug. ***

[Bug other/70425] decl_expr contains too little information

2016-07-30 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70425

--- Comment #2 from Andrew Pinski  ---
TU dump is only for debugging.

[Bug other/70425] decl_expr does not print the *_decl which is it is associated with it for tree-dump.c

2016-07-30 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70425

Andrew Pinski  changed:

   What|Removed |Added

Summary|decl_expr contains too  |decl_expr does not print
   |little information  |the *_decl which is it is
   ||associated with it for
   ||tree-dump.c
   Severity|minor   |enhancement

--- Comment #3 from Andrew Pinski  ---
The only operand for decl_expr are *_decl.  And DECL_EXPR is not handle
specially in dequeue_and_dump.

I don't know anyone who is using the .tu to look at the statements of a
function.

[Bug libstdc++/54924] Warn for std::string constructor with wrong size

2016-07-30 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54924

--- Comment #4 from Jonathan Wakely  ---
This seems like a job for sanitizers.

[Bug tree-optimization/70291] muldc3 code generation could be smarter

2016-07-30 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70291

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||missed-optimization
 CC||pinskia at gcc dot gnu.org
   Severity|normal  |enhancement

[Bug c++/60760] arithmetic on null pointers should not be allowed in constant expressions

2016-07-30 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60760

Martin Sebor  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #10 from Martin Sebor  ---
Fixed by r238909.

[Bug c++/55004] [meta-bug] constexpr issues

2016-07-30 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55004
Bug 55004 depends on bug 60760, which changed state.

Bug 60760 Summary: arithmetic on null pointers should not be allowed in 
constant expressions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60760

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

[Bug c++/60760] arithmetic on null pointers should not be allowed in constant expressions

2016-07-30 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60760

--- Comment #9 from Martin Sebor  ---
Author: msebor
Date: Sat Jul 30 22:36:56 2016
New Revision: 238909

URL: https://gcc.gnu.org/viewcvs?rev=238909&root=gcc&view=rev
Log:
PR c++/60760 - arithmetic on null pointers should not be allowed in constant
PR c++/71091 - constexpr reference bound to a null pointer dereference

gcc/cp/ChangeLog:

PR c++/60760
PR c++/71091
* constexpr.c (cxx_eval_binary_expression): Reject invalid expressions
involving null pointers.
(cxx_eval_component_reference): Reject null pointer dereferences.
(cxx_eval_indirect_ref): Reject indirecting through null pointers.
(cxx_eval_constant_expression): Reject invalid expressions involving
null pointers.

gcc/testsuite/ChangeLog:

PR c++/60760
PR c++/71091
* g++.dg/cpp0x/constexpr-cast.C: New test.
* g++.dg/cpp0x/constexpr-nullptr-2.C: New test.
* g++.dg/cpp1y/constexpr-sfinae.C: Correct.
* g++.dg/ubsan/pr63956.C: Correct.


Added:
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-cast.C
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr-2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/constexpr.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-sfinae.C
trunk/gcc/testsuite/g++.dg/ubsan/pr63956.C

[Bug c++/71091] constexpr reference bound to a null pointer dereference accepted

2016-07-30 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71091

--- Comment #2 from Martin Sebor  ---
Author: msebor
Date: Sat Jul 30 22:36:56 2016
New Revision: 238909

URL: https://gcc.gnu.org/viewcvs?rev=238909&root=gcc&view=rev
Log:
PR c++/60760 - arithmetic on null pointers should not be allowed in constant
PR c++/71091 - constexpr reference bound to a null pointer dereference

gcc/cp/ChangeLog:

PR c++/60760
PR c++/71091
* constexpr.c (cxx_eval_binary_expression): Reject invalid expressions
involving null pointers.
(cxx_eval_component_reference): Reject null pointer dereferences.
(cxx_eval_indirect_ref): Reject indirecting through null pointers.
(cxx_eval_constant_expression): Reject invalid expressions involving
null pointers.

gcc/testsuite/ChangeLog:

PR c++/60760
PR c++/71091
* g++.dg/cpp0x/constexpr-cast.C: New test.
* g++.dg/cpp0x/constexpr-nullptr-2.C: New test.
* g++.dg/cpp1y/constexpr-sfinae.C: Correct.
* g++.dg/ubsan/pr63956.C: Correct.


Added:
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-cast.C
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr-2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/constexpr.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-sfinae.C
trunk/gcc/testsuite/g++.dg/ubsan/pr63956.C

[Bug c++/71091] constexpr reference bound to a null pointer dereference accepted

2016-07-30 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71091

Martin Sebor  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Martin Sebor  ---
Fixed by r238909.

[Bug c++/55004] [meta-bug] constexpr issues

2016-07-30 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55004
Bug 55004 depends on bug 71091, which changed state.

Bug 71091 Summary: constexpr reference bound to a null pointer dereference 
accepted
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71091

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

[Bug fortran/68566] ICE on using unusable array in reshape (double free or corruption)

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68566

--- Comment #15 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Sat Jul 30 23:01:06 2016
New Revision: 238911

URL: https://gcc.gnu.org/viewcvs?rev=238911&root=gcc&view=rev
Log:
2016-07-30  Steven G. Kargl  

PR fortran/68566
* check.c (gfc_check_reshape): Check for constant expression.

2016-07-30  Steven G. Kargl  

PR fortran/68566
* gfortran.dg/pr68566.f90: new test.

Added:
trunk/gcc/testsuite/gfortran.dg/pr68566.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/check.c
trunk/gcc/testsuite/ChangeLog

[Bug fortran/68566] ICE on using unusable array in reshape (double free or corruption)

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68566

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Assignee|jvdelisle at gcc dot gnu.org   |kargl at gcc dot gnu.org
   Target Milestone|--- |7.0

--- Comment #16 from kargl at gcc dot gnu.org ---
fixed on trunk.

[Bug fortran/68566] ICE on using unusable array in reshape (double free or corruption)

2016-07-30 Thread jvdelisle at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68566

--- Comment #17 from Jerry DeLisle  ---
(In reply to kargl from comment #16)
> fixed on trunk.

Thanks Steve, I am working on some other magic, did not get to it.

[Bug c++/71820] ICE on valid C++ code: in arg_assoc_type, at cp/name-lookup.c:5583

2016-07-30 Thread su at cs dot ucdavis.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71820

--- Comment #4 from Zhendong Su  ---
A simpler test that triggers the same ICE: 

$ g++-trunk -v
Using built-in specs.
COLLECT_GCC=g++-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/usr/local/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 7.0.0 20160730 (experimental) [trunk revision 238903] (GCC) 
$ 
$ g++-trunk small.cpp
small.cpp: In function ‘int main()’:
small.cpp:7:15: internal compiler error: in arg_assoc_type, at
cp/name-lookup.c:5695
   f (g < int >);
   ^
0x87f0b2 arg_assoc_type
../../gcc-source-trunk/gcc/cp/name-lookup.c:5695
0x87f046 arg_assoc_args
../../gcc-source-trunk/gcc/cp/name-lookup.c:5706
0x87f046 arg_assoc_type
../../gcc-source-trunk/gcc/cp/name-lookup.c:5678
0x87e8ad arg_assoc
../../gcc-source-trunk/gcc/cp/name-lookup.c:5777
0x87ea78 arg_assoc
../../gcc-source-trunk/gcc/cp/name-lookup.c:5765
0x883eb1 arg_assoc_args_vec
../../gcc-source-trunk/gcc/cp/name-lookup.c:5721
0x883eb1 lookup_arg_dependent_1
../../gcc-source-trunk/gcc/cp/name-lookup.c:5826
0x883eb1 lookup_arg_dependent(tree_node*, tree_node*, vec*)
../../gcc-source-trunk/gcc/cp/name-lookup.c:5854
0x81c1d4 perform_koenig_lookup(cp_expr, vec*, int)
../../gcc-source-trunk/gcc/cp/semantics.c:2244
0x79886b cp_parser_postfix_expression
../../gcc-source-trunk/gcc/cp/parser.c:6854
0x7a0dec cp_parser_unary_expression
../../gcc-source-trunk/gcc/cp/parser.c:8012
0x7a1647 cp_parser_cast_expression
../../gcc-source-trunk/gcc/cp/parser.c:8689
0x7a1c45 cp_parser_binary_expression
../../gcc-source-trunk/gcc/cp/parser.c:8791
0x7a2530 cp_parser_assignment_expression
../../gcc-source-trunk/gcc/cp/parser.c:9079
0x7a4e29 cp_parser_expression
../../gcc-source-trunk/gcc/cp/parser.c:9246
0x7a559f cp_parser_expression_statement
../../gcc-source-trunk/gcc/cp/parser.c:10709
0x7933cb cp_parser_statement
../../gcc-source-trunk/gcc/cp/parser.c:10560
0x79408c cp_parser_statement_seq_opt
../../gcc-source-trunk/gcc/cp/parser.c:10832
0x79417f cp_parser_compound_statement
../../gcc-source-trunk/gcc/cp/parser.c:10786
0x7b2a1f cp_parser_function_body
../../gcc-source-trunk/gcc/cp/parser.c:20743
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
$ 





void f (void (*) (int, int)) {}

template < typename T > void g (T x, __typeof__ x) {}

int main ()
{
  f (g < int >); 
  return 0; 
}

[Bug c++/72760] New: incorrectly rejects valid C++ code that invokes __typeof__ on a specialized template function

2016-07-30 Thread su at cs dot ucdavis.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72760

Bug ID: 72760
   Summary: incorrectly rejects valid C++ code that invokes
__typeof__ on a specialized template function
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: su at cs dot ucdavis.edu
  Target Milestone: ---

The code is accepted by both Clang and ICC.  It is rejected by all versions of
GCC since at least as early as 4.4.x. 


$ g++-trunk -v
Using built-in specs.
COLLECT_GCC=g++-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/usr/local/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 7.0.0 20160730 (experimental) [trunk revision 238903] (GCC) 
$ 
$ clang++-3.8 -c small.cpp
$ 
$ g++-trunk -c small.cpp
small.cpp:3:22: error: type of ‘f’ is unknown
 __typeof__ (f < int >) a;
  ^
$ 





template < typename T > T f (T x); 

__typeof__ (f < int >) a;

[Bug fortran/41922] Diagnostic: No location shown for overlappingly initialized EQUIVALENCEd character vars

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41922

--- Comment #4 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Sun Jul 31 01:51:37 2016
New Revision: 238915

URL: https://gcc.gnu.org/viewcvs?rev=238915&root=gcc&view=rev
Log:
2016-07-30  Steven G. Kargl 

PR fortran/41922
* target-memory.c (expr_to_char): Pass in locus and use it in error
messages.
(gfc_merge_initializers): Ditto.
* target-memory.h: Update prototype for gfc_merge_initializers ().
* trans-common.c (get_init_field): Use the correct locus.

2016-07-30  Steven G. Kargl 

PR fortran/41922
* gfortran.dg/equiv_constraint_5.f90: Adjust the error message.
* gfortran.dg/equiv_constraint_7.f90: Ditto.
* gfortran.dg/pr41922.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/pr41922.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/target-memory.c
trunk/gcc/fortran/target-memory.h
trunk/gcc/fortran/trans-common.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/equiv_constraint_5.f90
trunk/gcc/testsuite/gfortran.dg/equiv_constraint_7.f90

[Bug fortran/68566] ICE on using unusable array in reshape (double free or corruption)

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68566

--- Comment #18 from kargl at gcc dot gnu.org ---
(In reply to Jerry DeLisle from comment #17)
> (In reply to kargl from comment #16)
> > fixed on trunk.
> 
> Thanks Steve, I am working on some other magic, did not get to it.

No big deal.  As you may have noticed, I cleaning out a
collection of patches that I have.  Came across this one
and thought you won't mind if I committed the patch.

[Bug c++/70486] Constexpr array captured in lambda function (used via std::function)

2016-07-30 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70486

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 Status|UNCONFIRMED |RESOLVED
  Known to work||5.4.0
 Resolution|--- |FIXED
  Known to fail||6.1.0

--- Comment #1 from Andrew Pinski  ---
Fixed in at least 5.4.0.

[Bug fortran/19276] [meta-bug] CHARACTER related bugs in gfortran

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19276
Bug 19276 depends on bug 41922, which changed state.

Bug 41922 Summary: Diagnostic: No location shown for overlappingly initialized 
EQUIVALENCEd character vars
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41922

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

[Bug fortran/41922] Diagnostic: No location shown for overlappingly initialized EQUIVALENCEd character vars

2016-07-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41922

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |kargl at gcc dot gnu.org
   Target Milestone|--- |7.0

--- Comment #5 from kargl at gcc dot gnu.org ---
Fixed on trunk.

[Bug c++/70352] [C++11] auto cannot be used in the type-id of a new-expression

2016-07-30 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70352

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-31
 Ever confirmed|0   |1
  Known to fail||6.1.0

--- Comment #2 from Andrew Pinski  ---
Confirmed.

[Bug target/70341] [4.9/5/6/7 Regression] Code size increase due to earlier switch case lowering.

2016-07-30 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70341

Andrew Pinski  changed:

   What|Removed |Added

  Component|tree-optimization   |target

--- Comment #4 from Andrew Pinski  ---
(In reply to Richard Biener from comment #2)
> Possibly caused by performing switch lowering in GIMPLE switch conversion.

It can't be because the resulting assembly still uses a case table.
The problem is the add happens on each of the cases rather than before.
  14:   4408add r0, r1
...
  1c:   4408add r0, r1
...
  24:   4408add r0, r1
...
  2c:   4408add r0, r1


The correct thing happens on aarch64-linux-gnu (that is the add does not show
up in all of the cases but hoisted before the switch).

[Bug target/70341] [4.9/5/6/7 Regression] cost model for addresses is incorrect, slsr is using reg + reg + CST for arm

2016-07-30 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70341

Andrew Pinski  changed:

   What|Removed |Added

Summary|[4.9/5/6/7 Regression] Code |[4.9/5/6/7 Regression] cost
   |size increase due to|model for addresses is
   |earlier switch case |incorrect, slsr is using
   |lowering.   |reg + reg + CST for arm

--- Comment #5 from Andrew Pinski  ---
I am suspecting what is happening on arm is the cost model for addresses is
incorrect and allowing [r1 + r2 + const] so slsr is picking that.

This is why it works correctly on aarch64 because the cost model is correct and
rejects that mode.

[Bug rtl-optimization/60079] [4.9 Regression] [LRA] ICE when compiling attached case.

2016-07-30 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60079

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 Status|WAITING |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |4.9.0
Summary|[LRA] ICE when compiling|[4.9 Regression] [LRA] ICE
   |attached case.  |when compiling attached
   ||case.

--- Comment #11 from Andrew Pinski  ---
Fixed a long time ago.

[Bug sanitizer/65662] ASAN is broken for 48bit VA on aarch64

2016-07-30 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65662

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-31
   See Also||https://bugs.linaro.org/sho
   ||w_bug.cgi?id=2376
Summary|AddressSanitizer CHECK  |ASAN is broken for 48bit VA
   |failed: |on aarch64
   |../../../../gcc/libsanitize |
   |r/sanitizer_common/sanitize |
   |r_allocator.h:835 "((res))  |
   |< ((kNumPossibleRegions))"  |
   |(0x3ffb49, 0x8) |
 Ever confirmed|0   |1

--- Comment #10 from Andrew Pinski  ---
Confirmed.

The Linaro bug for this is:
https://bugs.linaro.org/show_bug.cgi?id=2376

The patch to fix this was accepted into LLVM:
https://reviews.llvm.org/D22095

[Bug target/66959] [4.9 only] Bad code generated for union type punning of NEON intrinsic types on ARM64

2016-07-30 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66959

Andrew Pinski  changed:

   What|Removed |Added

  Known to work||5.4.0
   Target Milestone|--- |4.9.4
Summary|Bad code generated for  |[4.9 only] Bad code
   |union type punning of NEON  |generated for union type
   |intrinsic types on ARM64|punning of NEON intrinsic
   ||types on ARM64