Activity log for bug #1153768

Date Who What changed Old value New value Message
2013-03-11 20:20:50 Ian Forbes bug added bug
2013-03-11 20:24:00 Ian Forbes attachment added rng.cpp https://bugs.launchpad.net/ubuntu/+source/gcc-4.7/+bug/1153768/+attachment/3568874/+files/rng.cpp
2013-03-11 20:26:43 Ian Forbes description g++ crashes when compiling C++11 code. I believe the error in particular has to with the features from the <future> and <thread> headers, i.e. package_tasks and futures. The code in particular that crashed g++ was when I had a type mismatch in the packaged_task<T> template parameter. Rather than warning of a type mismatch g++ crashes. The particular code is the following (I do not include the prototyped functions here but they have no errors): Note the type mismatch between the packaged_task and simulate2(void); #include <random> #include <iostream> #include <chrono> #include <thread> #include <future> using namespace std; static int threads = 10; static int runs = 1000000; //1 000 000 double f(double); double simulate(double,double,int); double simulate2(void); int main(void){ packaged_task<double(double,double,int)> simulations[threads]; future<double> results[threads]; chrono::high_resolution_clock::time_point lStart = chrono::high_resolution_clock::now(); for(int i = 0; i < threads; i++){ simulations[i] = packaged_task<double(double,double,int)> (&simulate2); //Type Mismatch /*Expected double(double,double,int) but actual type is double(void)*/ results[i] = simulations[i].get_future(); thread(std::move(simulations[i]), 0, 4, runs/threads).detach();//100 000 000 * 10 } double sum = 0; for(future<double>& task : results){ sum += task.get(); } cout << "Threaded: " << sum/(double)threads << endl; chrono::high_resolution_clock::time_point lEnd = chrono::high_resolution_clock::now(); cout << "Time: " << chrono::duration_cast<chrono::milliseconds>(lEnd - lStart).count() << endl; lStart = chrono::high_resolution_clock::now(); cout << "Single:" << simulate(0, 4, runs) << endl; //1 000 000 000 Single Thread lEnd = chrono::high_resolution_clock::now(); cout << "Time: " << chrono::duration_cast<chrono::milliseconds>(lEnd - lStart).count() << endl; return 0; } ProblemType: Crash DistroRelease: Ubuntu 13.04 Package: g++-4.7 4.7.2-22ubuntu3 ProcVersionSignature: Ubuntu 3.8.0-11.20-generic 3.8.2 Uname: Linux 3.8.0-11-generic x86_64 ApportVersion: 2.9.1-0ubuntu1 Architecture: amd64 Date: Mon Mar 11 15:13:39 2013 ExecutablePath: /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1plus MarkForUpload: True SourcePackage: gcc-4.7 UpgradeStatus: No upgrade log present (probably fresh install) g++ crashes when compiling C++11 code. I believe the error in particular has to with the features from the <future> and <thread> headers, i.e. package_tasks and futures. The code in particular that crashed g++ was when I had a type mismatch in the packaged_task<T> template parameter. Rather than warning of a type mismatch g++ crashes. The particular code is the following (I do not include the prototyped functions here but they have no errors): Note the type mismatch between the packaged_task and simulate2(void); ProblemType: Crash DistroRelease: Ubuntu 13.04 Package: g++-4.7 4.7.2-22ubuntu3 ProcVersionSignature: Ubuntu 3.8.0-11.20-generic 3.8.2 Uname: Linux 3.8.0-11-generic x86_64 ApportVersion: 2.9.1-0ubuntu1 Architecture: amd64 Date: Mon Mar 11 15:13:39 2013 ExecutablePath: /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1plus MarkForUpload: True SourcePackage: gcc-4.7 UpgradeStatus: No upgrade log present (probably fresh install)
2013-03-11 20:26:58 Ian Forbes description g++ crashes when compiling C++11 code. I believe the error in particular has to with the features from the <future> and <thread> headers, i.e. package_tasks and futures. The code in particular that crashed g++ was when I had a type mismatch in the packaged_task<T> template parameter. Rather than warning of a type mismatch g++ crashes. The particular code is the following (I do not include the prototyped functions here but they have no errors): Note the type mismatch between the packaged_task and simulate2(void); ProblemType: Crash DistroRelease: Ubuntu 13.04 Package: g++-4.7 4.7.2-22ubuntu3 ProcVersionSignature: Ubuntu 3.8.0-11.20-generic 3.8.2 Uname: Linux 3.8.0-11-generic x86_64 ApportVersion: 2.9.1-0ubuntu1 Architecture: amd64 Date: Mon Mar 11 15:13:39 2013 ExecutablePath: /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1plus MarkForUpload: True SourcePackage: gcc-4.7 UpgradeStatus: No upgrade log present (probably fresh install) g++ crashes when compiling C++11 code. I believe the error in particular has to with the features from the <future> and <thread> headers, i.e. package_tasks and futures. The code in particular that crashed g++ was when I had a type mismatch in the packaged_task<T> template parameter. Rather than warning of a type mismatch g++ crashes. The particular code attached as rng.cpp Note the type mismatch between the packaged_task and simulate2(void); ProblemType: Crash DistroRelease: Ubuntu 13.04 Package: g++-4.7 4.7.2-22ubuntu3 ProcVersionSignature: Ubuntu 3.8.0-11.20-generic 3.8.2 Uname: Linux 3.8.0-11-generic x86_64 ApportVersion: 2.9.1-0ubuntu1 Architecture: amd64 Date: Mon Mar 11 15:13:39 2013 ExecutablePath: /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1plus MarkForUpload: True SourcePackage: gcc-4.7 UpgradeStatus: No upgrade log present (probably fresh install)