[Bug c++/96096] New: g++-10.1 silently ignores function violating const instead of refusing to compile

2020-07-07 Thread agadethrowaway at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96096

Bug ID: 96096
   Summary: g++-10.1 silently ignores function violating const
instead of refusing to compile
   Product: gcc
   Version: 10.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: agadethrowaway at gmail dot com
  Target Milestone: ---

Created attachment 48842
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48842&action=edit
Minimal bug reproduction code

Attached code compiled with:

g++-10 (Ubuntu 10.1.0-2ubuntu1~18.04) 10.1.0

with compile line:
g++-10 Const_Violation_Silent_Error.cpp -o Const_Violation_Silent_Error

compiles whereas g++-9 (g++-9 (Ubuntu 9.3.0-11ubuntu0~18.04.1) 9.3.0) correctly
refuses to with error:

error: binding reference of type ‘dummy&’ to ‘const dummy’ discards
qualifiers...

Not only does this code compile when it should not, but it will simply quietly
never enter Modify_Object().

Copy of attached code:

struct dummy{
int int_param;
};

inline void Modify_Object(dummy &object){
object.int_param=0;
}

template  void Templated_Function(){
const dummy R{0};
Modify_Object(R);
}

int main(){
Templated_Function();
}

[Bug c++/96179] New: g++-10.1 silently doesn't push_back the return of a void function

2020-07-13 Thread agadethrowaway at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96179

Bug ID: 96179
   Summary: g++-10.1 silently doesn't push_back the return of a
void function
   Product: gcc
   Version: 10.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: agadethrowaway at gmail dot com
  Target Milestone: ---

Created attachment 48866
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48866&action=edit
Minimal reproducing example

#include 
using namespace std;

struct dummy{
int a;
};

void Modify_Dummy(dummy &d){
d.a=1;
}

template  void Templated_Function(){
vector A;
A.push_back(Modify_Dummy(dummy{0}));
}

int main(){
Templated_Function();
}

Compiled with

all:
g++-10 Void_Pushback.cpp -o Void_Pushback

using:

g++-10 (Ubuntu 10-20200411-0ubuntu1) 10.0.1 20200411 (experimental) [master
revision bb87d5cc77d:75961caccb7:f883c46b4877f637e0fa5025b4d6b5c9040ec566]

Copy of code attached.

Code should not compile. The push_back instruction is silently ignored and the
vector stays empty.

[Bug c++/80089] New: ICE: Segfault with openMP and a string

2017-03-17 Thread agadethrowaway at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80089

Bug ID: 80089
   Summary: ICE: Segfault with openMP and a string
   Product: gcc
   Version: 5.4.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: agadethrowaway at gmail dot com
  Target Milestone: ---

Created attachment 40998
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40998&action=edit
Code to reproduce + .ii file

Version:
g++ (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904

System:
Linux mint 18.1

Minimal code:
#include 
int main(){
std::string s="";
#pragma omp parallel
while(true){}
}

Compile line:
g++ ICE.cpp -O3 -fopenmp

Output:
ICE.cpp: In function ‘int main()’:
ICE.cpp:6:1: internal compiler error: Segmentation fault
 }
 ^
Please submit a full bug report,
with preprocessed source if appropriate.
See  for instructions.
Makefile:2: recipe for target 'all' failed
make: *** [all] Error 1

I believe these are the compilation options ubuntu uses:
Configured with: -v
 --with-pkgversion='Ubuntu 5.4.1-8ubuntu1'
 --with-bugurl='file:///usr/share/doc/gcc-5/README.Bugs'
 --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++
 --prefix=/usr
 --program-suffix=-5
 --enable-shared
 --enable-linker-build-id
 --libexecdir=/usr/lib
 --without-included-gettext
 --enable-threads=posix
 --libdir=/usr/lib
 --enable-nls
 --with-sysroot=/
 --enable-clocale=gnu
 --enable-libstdcxx-debug
 --enable-libstdcxx-time=yes
 --with-default-libstdcxx-abi=new
 --enable-gnu-unique-object
 --disable-vtable-verify
 --enable-libmpx
 --enable-plugin
 --enable-default-pie
 --with-system-zlib
 --disable-browser-plugin
 --enable-java-awt=gtk
 --enable-gtk-cairo
 --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre
 --enable-java-home
 --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64
 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64
 --with-arch-directory=amd64
 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
 --enable-objc-gc
 --enable-multiarch
 --disable-werror
 --with-arch-32=i686
 --with-abi=m64
 --with-multilib-list=m32,m64,mx32
 --enable-multilib
 --with-tune=generic
 --enable-checking=release
 --build=x86_64-linux-gnu
 --host=x86_64-linux-gnu
 --target=x86_64-linux-gnu

It seems to be a regression in gcc 5 through to gcc 6.2 and gone in gcc 6.3.
Included are the .cpp and .ii files in a .tar.gz.