facebook / facebook/folly

`small_vector.MoveAndCopyTrivial` fails with GCC 12.3.0 (no problem with GCC 9.x 10.x 11.x 13.x)

Open
#2,094 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
30.5k
Forks
5.9k
PR merge metrics
No merged PRs in 30d

Description

`small_vector.MoveAndCopyTrivial` fails with GCC 12.3.0 (no problem with GCC 9.x 10.x 11.x 13.x)

log:
```
[==========] Running 55 tests from 2 test suites.
[----------] Global test environment set-up.
[----------] 54 tests from small_vector
[ RUN ] small_vector.BasicGuarantee
[ OK ] small_vector.BasicGuarantee (38 ms)
[ RUN ] small_vector.leak_test
[ OK ] small_vector.leak_test (15 ms)
[ RUN ] small_vector.InsertTrivial
[ OK ] small_vector.InsertTrivial (0 ms)
[ RUN ] small_vector.InsertNontrivial
[ OK ] small_vector.InsertNontrivial (0 ms)
[ RUN ] small_vector.Swap
[ OK ] small_vector.Swap (0 ms)
[ RUN ] small_vector.Emplace
[ OK ] small_vector.Emplace (0 ms)
[ RUN ] small_vector.Erase
[ OK ] small_vector.Erase (0 ms)
[ RUN ] small_vector.GrowShrinkGrow
[ OK ] small_vector.GrowShrinkGrow (0 ms)
[ RUN ] small_vector.Iteration
[ OK ] small_vector.Iteration (0 ms)
[ RUN ] small_vector.NonCopyableType
[ OK ] small_vector.NonCopyableType (0 ms)
[ RUN ] small_vector.MoveConstructor
[ OK ] small_vector.MoveConstructor (0 ms)
[ RUN ] small_vector.NoHeap
[ OK ] small_vector.NoHeap (0 ms)
[ RUN ] small_vector.MaxSize
[ OK ] small_vector.MaxSize (0 ms)
[ RUN ] small_vector.AllHeap
[ OK ] small_vector.AllHeap (0 ms)
[ RUN ] small_vector.Basic
[ OK ] small_vector.Basic (0 ms)
[ RUN ] small_vector.Capacity
[ OK ] small_vector.Capacity (1 ms)
[ RUN ] small_vector.SelfPushBack
[ OK ] small_vector.SelfPushBack (0 ms)
[ RUN ] small_vector.SelfEmplaceBack
[ OK ] small_vector.SelfEmplaceBack (0 ms)
[ RUN ] small_vector.SelfInsert
[ OK ] small_vector.SelfInsert (0 ms)
[ RUN ] small_vector.ForwardingEmplaceInsideVector
[ OK ] small_vector.ForwardingEmplaceInsideVector (0 ms)
[ RUN ] small_vector.LVEmplaceInsideVector
[ OK ] small_vector.LVEmplaceInsideVector (0 ms)
[ RUN ] small_vector.CLVEmplaceInsideVector
[ OK ] small_vector.CLVEmplaceInsideVector (0 ms)
[ RUN ] small_vector.RVEmplaceInsideVector
[ OK ] small_vector.RVEmplaceInsideVector (0 ms)
[ RUN ] small_vector.LVPushValueInsideVector
[ OK ] small_vector.LVPushValueInsideVector (0 ms)
[ RUN ] small_vector.RVPushValueInsideVector
[ OK ] small_vector.RVPushValueInsideVector (0 ms)
[ RUN ] small_vector.EmplaceIterCtor
[ OK ] small_vector.EmplaceIterCtor (0 ms)
[ RUN ] small_vector.InputIterator
[ OK ] small_vector.InputIterator (0 ms)
[ RUN ] small_vector.NoCopyCtor
[ OK ] small_vector.NoCopyCtor (0 ms)
[ RUN ] small_vector.ZeroInitializable
[ OK ] small_vector.ZeroInitializable (0 ms)
[ RUN ] small_vector.InsertMoreThanGrowth
[ OK ] small_vector.InsertMoreThanGrowth (0 ms)
[ RUN ] small_vector.EmplaceBackExponentialGrowth
[ OK ] small_vector.EmplaceBackExponentialGrowth (0 ms)
[ RUN ] small_vector.InsertExponentialGrowth
[ OK ] small_vector.InsertExponentialGrowth (7 ms)
[ RUN ] small_vector.InsertNExponentialGrowth
[ OK ] small_vector.InsertNExponentialGrowth (260 ms)
[ RUN ] small_vector.EmplaceBackEfficiency
[ OK ] small_vector.EmplaceBackEfficiency (0 ms)
[ RUN ] small_vector.RVPushBackEfficiency
[ OK ] small_vector.RVPushBackEfficiency (0 ms)
[ RUN ] small_vector.CLVPushBackEfficiency
[ OK ] small_vector.CLVPushBackEfficiency (0 ms)
[ RUN ] small_vector.StorageForSortedVectorMap
[ OK ] small_vector.StorageForSortedVectorMap (0 ms)
[ RUN ] small_vector.NoHeapStorageForSortedVectorMap
[ OK ] small_vector.NoHeapStorageForSortedVectorMap (0 ms)
[ RUN ] small_vector.StorageForSortedVectorSet
[ OK ] small_vector.StorageForSortedVectorSet (0 ms)
[ RUN ] small_vector.NoHeapStorageForSortedVectorSet
[ OK ] small_vector.NoHeapStorageForSortedVectorSet (0 ms)
[ RUN ] small_vector.SelfMoveAssignmentForVectorOfPair
[ OK ] small_vector.SelfMoveAssignmentForVectorOfPair (0 ms)
[ RUN ] small_vector.SelfCopyAssignmentForVectorOfPair
[ OK ] small_vector.SelfCopyAssignmentForVectorOfPair (0 ms)
[ RUN ] small_vector.PopBackNonAssignableType
[ OK ] small_vector.PopBackNonAssignableType (0 ms)
[ RUN ] small_vector.erase
[ OK ] small_vector.erase (0 ms)
[ RUN ] small_vector.erase_if
[ OK ] small_vector.erase_if (0 ms)
[ RUN ] small_vector.MoveAndCopyTrivial
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 0
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 1
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 3
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 4
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 5
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 6
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 7
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 8
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 9
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 10
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 11
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 12
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 13
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 14
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1340: Failure
Expected equality of these values:
v[i]
Which is: 0
i
Which is: 1
Google Test trace:
/build/fetchgit/folly/test/small_vector_test.cpp:1375: Move-assignment
/build/fetchgit/folly/test/small_vector_test.cpp:1373: to = 15
/build/fetchgit/folly/test/small_vector_test.cpp:1350: from = 2
/build/fetchgit/folly/test/small_vector_test.cpp:1345: N = 2
[ FAILED ] small_vector.MoveAndCopyTrivial (0 ms)
[ RUN ] small_vector.MoveAndCopyNonTrivial
[ OK ] small_vector.MoveAndCopyNonTrivial (0 ms)
[ RUN ] small_vector.PolicyMaxSizeExceeded
[ OK ] small_vector.PolicyMaxSizeExceeded (0 ms)
[ RUN ] small_vector.Hashable
[ OK ] small_vector.Hashable (0 ms)
[ RUN ] small_vector.overflowConstruct
[ OK ] small_vector.overflowConstruct (0 ms)
[ RUN ] small_vector.overflowResize
[ OK ] small_vector.overflowResize (0 ms)
[ RUN ] small_vector.overflowAssign
[ OK ] small_vector.overflowAssign (0 ms)
[ RUN ] small_vector.rangeConstructorForwardIteratorThrows
[ OK ] small_vector.rangeConstructorForwardIteratorThrows (0 ms)
[ RUN ] small_vector.rangeConstructorInputIteratorThrows
[ OK ] small_vector.rangeConstructorInputIteratorThrows (0 ms)
[----------] 54 tests from small_vector (326 ms total)

[----------] 1 test from small_vecctor
[ RUN ] small_vecctor.InsertFromBidirectionalList
[ OK ] small_vecctor.InsertFromBidirectionalList (0 ms)
[----------] 1 test from small_vecctor (0 ms total)

[----------] Global test environment tear-down
[==========] 55 tests from 2 test suites ran. (326 ms total)
[ PASSED ] 54 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] small_vector.MoveAndCopyTrivial

1 FAILED TEST
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.