[Bug c++/86384] Scoped enumeration instantiated even if not required

2018-07-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86384

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #1 from Jonathan Wakely  ---
You already reported this one.

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

[Bug middle-end/86380] Incorrect inequality in function chose_multiplier in file expmed.c in GCC.8.1.0 and earlier versions

2018-07-03 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86380

Eric Botcazou  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-07-03
 Ever confirmed|0   |1

--- Comment #1 from Eric Botcazou  ---
Yes, but choose_multiplier cannot be invoked for such a problematic case.

[Bug c++/86384] New: Scoped enumeration instantiated even if not required

2018-07-03 Thread zhonghao at pku dot org.cn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86384

Bug ID: 86384
   Summary: Scoped enumeration instantiated even if not required
   Product: gcc
   Version: 8.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: zhonghao at pku dot org.cn
  Target Milestone: ---

The code is as follow:

template
struct A {
 enum class B {
 X = T::value
 };
};

int main() {
 A a;
}


g++ error:

code0.c.cpp:4:13: error: 'value' is not a member of 'int'
  enum class B {
 ^

This code looks well-formed. Only if we look into the enumeration, as
"A::B::X", the definition of the enumeration is required to exist and thus
implicitly instantiated. This is specified at 14.7.1p1 and p2. I tried clang++.
It accepts the code without any error message.

[Bug target/86383] arm-netbsdelf cross compiler fails in selftests

2018-07-03 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86383

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-07-03
 CC||krister.walfridsson at gmail 
dot c
   ||om
 Ever confirmed|0   |1

--- Comment #1 from ktkachov at gcc dot gnu.org ---
Ah yes. We removed support for the deprecated arm6 CPU in GCC 9 but
arm*-*-netbsdelf* uses it as the default if no --with-cpu is given. We should
move the default CPU up to something more modern.

CC'ing the NetBSD OS port maintainers. Can you recommend a more recent default
arm CPU to be the default?

[Bug target/86382] New: Configuration powerpc-unknown-linux-gnu_paired not supported

2018-07-03 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86382

Bug ID: 86382
   Summary: Configuration powerpc-unknown-linux-gnu_paired not
supported
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: marxin at gcc dot gnu.org
CC: segher at gcc dot gnu.org
  Target Milestone: ---

It's listed in contrib/config-list.mk, should I remove that?

[Bug target/86383] New: arm-netbsdelf cross compiler fails in selftests

2018-07-03 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86383

Bug ID: 86383
   Summary: arm-netbsdelf cross compiler fails in selftests
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: marxin at gcc dot gnu.org
CC: ktkachov at gcc dot gnu.org
  Target Milestone: ---
  Host: x86_64-linux-gnu
Target: arm-netbsdelf

Building cross compiler I see:

./xgcc -B./ -B/usr/local/arm-netbsdelf/bin/ -isystem
/usr/local/arm-netbsdelf/include -isystem /usr/local/arm-netbsdelf/sys-include
-L/home/marxin/Programming/gcc2/objdir/gcc/../ld -xc -nostdinc /dev/null -S -o
/dev/null -fself-test=../../gcc/testsuite/selftests
xgcc: error: unrecognized -mcpu target: arm6
xgcc: note: valid arguments are: arm8 arm810 strongarm strongarm110
strongarm1100 strongarm1110 fa526 fa626 arm7tdmi arm7tdmi-s arm710t arm720t
arm740t arm9 arm9tdmi arm920 arm920t arm922t arm940t ep9312 arm10tdmi arm1020t
arm9e arm946e-s arm966e-s arm968e-s arm10e arm1020e arm1022e xscale iwmmxt
iwmmxt2 fa606te fa626te fmp626 fa726te arm926ej-s arm1026ej-s arm1136j-s
arm1136jf-s arm1176jz-s arm1176jzf-s mpcorenovfp mpcore arm1156t2-s
arm1156t2f-s cortex-m1 cortex-m0 cortex-m0plus cortex-m1.small-multiply
cortex-m0.small-multiply cortex-m0plus.small-multiply generic-armv7-a cortex-a5
cortex-a7 cortex-a8 cortex-a9 cortex-a12 cortex-a15 cortex-a17 cortex-r4
cortex-r4f cortex-r5 cortex-r7 cortex-r8 cortex-m7 cortex-m4 cortex-m3
marvell-pj4 cortex-a15.cortex-a7 cortex-a17.cortex-a7 cortex-a32 cortex-a35
cortex-a53 cortex-a57 cortex-a72 cortex-a73 exynos-m1 xgene1
cortex-a57.cortex-a53 cortex-a72.cortex-a53 cortex-a73.cortex-a35
cortex-a73.cortex-a53 cortex-a55 cortex-a75 cortex-a76 cortex-a75.cortex-a55
cortex-a76.cortex-a55 cortex-m23 cortex-m33 cortex-r52; did you mean β€˜arm8’?
xgcc: error: missing argument to β€˜-march=’

Breakpoint 6, error_at (loc=0, gmsgid=0x4f6123 "unrecognized %s target: %s") at
../../gcc/diagnostic.c:1378
1378  va_start (ap, gmsgid);
(gdb) bt
#0  error_at (loc=0, gmsgid=0x4f6123 "unrecognized %s target: %s") at
../../gcc/diagnostic.c:1378
#1  0x00419953 in arm_parse_cpu_option_name (list=0x4e96e0 ,
optname=0x4f60d3 "-mcpu", target=0x7ac800 "arm6", complain=true) at
../../gcc/common/config/arm/arm-common.c:352
#2  0x0041a37d in arm_canon_arch_option (argc=0, argv=0x7b1b18) at
../../gcc/common/config/arm/arm-common.c:666
#3  0x0040e098 in eval_spec_function (func=0x7b19d0 "canon_arch", 
args=0x7a8b60 "%{mcpu=*: cpu %*}", ' ' , "%{march=*: arch
%*}", ' ' , "%{mfpu=*: fpu %*}", ' ' ,
"%{mfloat-abi=*: abi %*}", ' ' , "%, "%{march=*: arch %*}", ' ' , "%{mfpu=*: fpu %*}", ' '
, "%{mfloat-abi=*: abi %*}", ' ' ,
"%, "%{march=*: arch %*}", ' ' , "%{mfpu=*: fpu %*}", ' '
, "%{mfloat-abi=*: abi %*}", ' ' ,
"%, "%{march=*: arch %*}", ' ' , "%{mfpu=*: fpu %*}", ' '
, "%{mfloat-abi=*: abi %*}", ' ' ,
"%

[Bug c++/86374] [8/9 regression] template member name lookup problem

2018-07-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86374

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P1
 Status|UNCONFIRMED |NEW
  Known to work||7.3.0, 7.3.1, 8.1.0
   Keywords||rejects-valid
   Last reconfirmed||2018-07-03
 CC||jason at gcc dot gnu.org
 Ever confirmed|0   |1
Summary|[8 regression] template |[8/9 regression] template
   |member name lookup problem  |member name lookup problem
   Target Milestone|--- |8.2
  Known to fail||8.1.1, 9.0

--- Comment #1 from Richard Biener  ---
For some reason GCC 7 branch is fine.  Confirmed also on trunk.

[Bug bootstrap/86376] recent breakage in ubsan build ?

2018-07-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86376

--- Comment #4 from Richard Biener  ---
Really GCC 8?

[Bug c++/86379] [8/9 Regression] Class member access of |using|'d field goes horribly awry in presence of templates

2018-07-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86379

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |8.2

[Bug driver/45749] Response file unwrapped between collect2.exe and ld.exe

2018-07-03 Thread orgads at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45749

Orgad Shaneh  changed:

   What|Removed |Added

 CC||orgads at gmail dot com

--- Comment #12 from Orgad Shaneh  ---
I've noticed similar behavior with passing arguments to cc1plus and cc (GCC
8.1.0).

This short script demonstrates the bug:

#!/bin/sh
touch file.h
echo "-g -O0 -w -m32 -fexceptions -x c++-header -o file.gch -c file.h" > resp
seq -f '-IC:/Some/Very/Long/Path/With/Many/Components/%g' 1 1000 >> resp
g++ @resp
# g++.exe: error: CreateProcess: No such file or directory

g++ --verbose output:
Using built-in specs.
COLLECT_GCC=C:\MinGW\bin\g++.exe
Target: i686-w64-mingw32
Configured with: ../../../src/gcc-8.1.0/configure --host=i686-w64-mingw32
--build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32
--with-sysroot=/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32
--enable-shared --enable-static --disable-multilib
--enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes
--enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto
--enable-graphite --enable-checking=release --enable-fully-dynamic-string
--enable-version-specific-runtime-libs --disable-sjlj-exceptions --with-dwarf2
--disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap
--disable-rpath --disable-win32-registry --disable-nls --disable-werror
--disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686
--with-tune=generic --with-libiconv --with-system-zlib
--with-gmp=/c/mingw810/prerequisites/i686-w64-mingw32-static
--with-mpfr=/c/mingw810/prerequisites/i686-w64-mingw32-static
--with-mpc=/c/mingw810/prerequisites/i686-w64-mingw32-static
--with-isl=/c/mingw810/prerequisites/i686-w64-mingw32-static
--with-pkgversion='i686-posix-dwarf-rev0, Built by MinGW-W64 project'
--with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe
-fno-ident -I/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32/opt/include
-I/c/mingw810/prerequisites/i686-zlib-static/include
-I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2
-pipe -fno-ident
-I/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32/opt/include
-I/c/mingw810/prerequisites/i686-zlib-static/include
-I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS='
-I/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32/opt/include
-I/c/mingw810/prerequisites/i686-zlib-static/include
-I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' LDFLAGS='-pipe
-fno-ident -L/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32/opt/lib
-L/c/mingw810/prerequisites/i686-zlib-static/lib
-L/c/mingw810/prerequisites/i686-w64-mingw32-static/lib
-Wl,--large-address-aware'
Thread model: posix
gcc version 8.1.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 
COLLECT_GCC_OPTIONS='-v' '-debug' '-g' '-O0' '-w' '-m32' '-fexceptions' '-o'
'file.gch' '-c' '-I' 'C:/Some/Very/Long/Path/With/Many/Components/1' '-I'
'C:/Some/Very/Long/Path/With/Many/Components/2' ... '-shared-libgcc'
'-mtune=generic' '-march=i686'
 C:/MinGW/bin/../libexec/gcc/i686-w64-mingw32/8.1.0/cc1plus.exe -quiet -v -I
C:/Some/Very/Long/Path/With/Many/Components/1 -I
C:/Some/Very/Long/Path/With/Many/Components/2 ...
C:/MinGW/bin/../lib/gcc/i686-w64-mingw32/8.1.0/ -D_REENTRANT file.h -quiet
-dumpbase file.h -debug -m32 -mtune=generic -march=i686 -auxbase-strip file.gch
-g -O0 -w -version -fexceptions -o F:\Temp\cc9pnz65.s --output-pch= file.gch
g++.exe: error: CreateProcess: No such file or directory

[Bug fortran/54613] [F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=

2018-07-03 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54613

janus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||janus at gcc dot gnu.org

--- Comment #11 from janus at gcc dot gnu.org ---
(In reply to Thomas Koenig from comment #4)
> Still to do: FINDLOC and BACK.

It seems that BACK is done by now, while FINDLOC is still to do.

[Bug bootstrap/86376] recent breakage in ubsan build ?

2018-07-03 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86376

--- Comment #3 from David Binderman  ---
This configure line seems to work:

../trunk/configure --prefix=/home/dcb/gcc/results.262304.ubsan \
--with-build-config=bootstrap-ubsan \
--disable-multilib \
--disable-werror \
--enable-checking=df,extra,fold \
--enable-languages=fortran

So it's looking like the rtl or yes flags are the problem.

[Bug c/86380] New: Incorrect inequality in function chose_multiplier in file expmed.c in GCC.8.1.0 and earlier versions

2018-07-03 Thread colinwb at yahoo dot co.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86380

Bug ID: 86380
   Summary: Incorrect inequality in function chose_multiplier in
file expmed.c in GCC.8.1.0 and earlier versions
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: colinwb at yahoo dot co.uk
  Target Milestone: ---

In this line near the end of function choose_multiplier in file expmed.c
return mhigh.to_uhwi () >= mask;
the ">=" should really be ">".
As it is when precision = n < HOST_BITS_PER_WIDE_INT and d = 2**(n-1) + 1,
so post_shift = 2*n - 1 - n = n - 1 and mhigh = 2**n - 1,
choose_multiplier wrongly returns that the upper bit should be set.

unsigned HOST_WIDE_INT
choose_multiplier (unsigned HOST_WIDE_INT d, int n, int precision,
   unsigned HOST_WIDE_INT *multiplier_ptr,
   int *post_shift_ptr, int *lgup_ptr)
...
  *post_shift_ptr = post_shift;
  *lgup_ptr = lgup;
  if (n < HOST_BITS_PER_WIDE_INT)
{
  unsigned HOST_WIDE_INT mask = (HOST_WIDE_INT_1U << n) - 1;
  *multiplier_ptr = mhigh.to_uhwi () & mask;
  return mhigh.to_uhwi () >= mask;
}
  else
{
  *multiplier_ptr = mhigh.to_uhwi ();
  return wi::extract_uhwi (mhigh, HOST_BITS_PER_WIDE_INT, 1);
}
}

<    1   2