?ge(lq|qr)s.f: WORK( LWORK ) -> WORK( * )#1094
?ge(lq|qr)s.f: WORK( LWORK ) -> WORK( * )#1094langou merged 1 commit intoReference-LAPACK:masterfrom
Conversation
|
With this and #1093 it builds, but with broken symbols [1] |
|
interesting that both this and #1093 are only showing up in the 64 half of the build, makes me wonder if there might be underlying symbol collisions between the 32- and 64-bit integer versions of the functions |
|
Thanks for the PR @wdconinc. 'WORK( LWORK )' indicates to the compiler the size of the array WORK. On the one hand, by using 'WORK( LWORK )' instead of 'WORK( * )', we can hope that, if we do some out-of-bound accesses, we get errors notifications; we can also hope for some performance optimization. When we write 'WORK( * )', we forego these possible features. Also, it seems that 'WORK( LWORK )' is valid programming and so 'WORK( LWORK )' should compile. On the other hand, most of LAPACK subroutines use 'WORK( * )' . 'WORK( LWORK )' is scarcely used in LAPACK. All in all, I am in favor of approving the PR. |
|
I'm wondering if this PR is held up by something, or whether it would be possible to merge it. |
|
Thanks for the reminder @wdconinc |
Description
In #1092, compilation of 3.12.1 is reported to fail due to
WORK( LWORK )inSRC/DEPRECATED/?ge(lq|qr)s.f. I can reproduce this locally (gcc-14.2.0). Suggested in the report is a change toWORK( * ).This PR changs
WORK( LWORK )toWORK( * )in allSRC/DEPRECATED/?ge(lq|qr)s.f, which is confirmed to cause compilation to succeed (when combined with #1093).Checklist