Feature #4398
Request upgrade to new compiler due to optimization bug using gcc 4_7_1
Description
When using g++ 4_7_1 with the -O3 compile-time option, some of the mu2e code does not work properly. Specifically, when accessing a vector of std::arrays, the following:
_vector.at(i).at(j)
returns 0 when it should be nonzero. There are no problems when _vector[i][j] is used, but then we lose the bounds-checking capability, and it gets very cluttered to write things like:
auto const & it = _vector.begin()
cout << *(it+1)[0]
instead of
auto const & it = _vector.begin()
cout << (it+1)->at(0)
This problem was apparently fixed with gcc versions 4_7_3 and above, so we would greatly benefit from a newer version.
History
#1 Updated by Christopher Green over 7 years ago
- Subject changed from Compilation bug using gcc 4_7_1 to Request upgrade to new compiler due to optimization bug using gcc 4_7_1
Retitled.
Misbehavior verified using UPS gcc 4.7.1 vs gcc 4.7.3 on linux.
#2 Updated by Lynn Garren over 7 years ago
- Due date set to 09/30/2013
- Category set to Build System
- Status changed from New to Assigned
- Assignee set to Lynn Garren
- Target version set to 1.09.00
- % Done changed from 0 to 30
The basic external set is now compiled with gcc 4.8.1. Geant4 and the other mu2e extras will be available soon.
#3 Updated by Christopher Green over 7 years ago
- Target version changed from 1.09.00 to 1.08.02
- % Done changed from 30 to 90
mu2e-extras was uploaded to oink yesterday. Awaiting the mu2e build of the art suite 1.08.02 to use same.
#4 Updated by Lynn Garren over 7 years ago
- % Done changed from 90 to 50
Correction - the SLF6 build of mu2e_extras was made available. Mu2e needs SLF5.
#5 Updated by Lynn Garren over 7 years ago
- % Done changed from 50 to 90
- Estimated time set to 10.00 h
art v1_08_02 was built with gcc 4.8.1. In addition, art v1_08_04 has just been released with MacOSX support as well as one bug fix. I've install the profile build of art v1_08_04 in /grid/fermiapp/products/mu2e/artexternals. There is not a matching build of splines yet.
cry v1_7 is now part of mu2e_extras.
#6 Updated by Lynn Garren over 7 years ago
- Status changed from Assigned to Resolved
- % Done changed from 90 to 100
splines v1_02_00, built against the correct versions of cpp0x and gcc is now installed in /grid/fermiapp/products/mu2e/artexternals. This ticket is now complete.
#7 Updated by Lynn Garren over 7 years ago
- Status changed from Resolved to Closed