-
Notifications
You must be signed in to change notification settings - Fork 423
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UCS/QUEUE: Fix ucs_queue_for_each() with armclang #2968
Conversation
armclang assumes an address of struct field cannot be NULL, so the exit condition in ucs_queue_for_each() does not work. Fix by checking the pointer to the struct instead of its member.
Test PASSed. |
Test FAILed. |
@yosefe looks like clang thing, not arm specific. |
Also, since this is compilation issues, IMHO it should be back ported to v1.4.x tree. |
Yes, the issue also effects clang. Had a quick go with clang (LLVM5) and Armclang (a version built off of LLVM7), both now fail on test_callbackq_noflags.remove_if...
|
@nSircombe @shamisp i've tried with 'Arm C/C++/Fortran Compiler version 18.4.2 (build number 4) (based on LLVM 5.0.2)' and did not see a problem with 'test_callbackq_noflags.remove_if' |
Test PASSed. |
Test FAILed. |
Test FAILed. |
Test FAILed. |
Test FAILed. |
Test FAILed. |
Test FAILed. |
Test FAILed. |
Test PASSed. |
Test FAILed. |
Test FAILed. |
Test FAILed. |
Test PASSed. |
Test PASSed. |
Huh, ok.
…let me try again on a clean checkout and get back to you.
I don’t know if there are any suitable & affected systems with remote access.
|
Test PASSed. |
Test PASSed. |
@yosefe Do we need backport this ? |
Test FAILed. |
Test PASSed. |
Test FAILed. |
Test FAILed. |
Test PASSed. |
@hoopoepg can you take a look again? |
test/gtest/ucs/test_datatype.cc
Outdated
ucs_queue_push(&head, &elem3->queue); | ||
ucs_queue_push(&head, &elem4->queue); | ||
|
||
for (int i = 0; i < 4; ++i) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor:
for (int i = 0; i < elems.size(); ++i) {
Test PASSed. |
Test PASSed. |
@nSircombe did it resolve the problem ? |
Fixes #2928