On Mon, Jan 29, 2024 at 08:23:21AM -0800, H.J. Lu wrote:
> > baz:
> >         movq    .LC0(%rip), %xmm0
> >         ret
> 
> I don't think this is valid.  We can't reference a non-public
> symbol outside of a COMDAT group.  It is OK to reference
> foo or foo + 1, but not .LC0.

But that is exactly what your patch does, e.g. on the first testcase:
--- pr113617-1a.s       2024-01-29 11:29:55.831512974 +0100
+++ pr113617-1a.s       2024-01-29 11:30:04.335394116 +0100
@@ -51,28 +-51,28 @@
        .section        
.text._ZN3vtk6detail3smp15vtkSMPToolsImplILi1EE3ForINS1_27vtkSMPTools_FunctorInternalIN12_GLOBAL__N_19CountUsesIxEELb0EEEEEvxxxRT_,"axG",@progbits,_ZN26vtkStaticCellLinksTemplateIxE18ThreadedBuildLinksExxP12vtkCellArray,comdat
        .align 2
        .p2align 4
        .type   
_ZN3vtk6detail3smp15vtkSMPToolsImplILi1EE3ForINS1_27vtkSMPTools_FunctorInternalIN12_GLOBAL__N_19CountUsesIxEELb0EEEEEvxxxRT_,
 @function
 
_ZN3vtk6detail3smp15vtkSMPToolsImplILi1EE3ForINS1_27vtkSMPTools_FunctorInternalIN12_GLOBAL__N_19CountUsesIxEELb0EEEEEvxxxRT_:
        pushq   %r15
        leaq    
_ZN4blah17_Function_handlerIFvvENS_5_BindIFPFvPvxxxEPN3vtk6detail3smp27vtkSMPTools_FunctorInternalIN12_GLOBAL__N_19CountUsesIxEELb0EEExxxEEEE9_M_invokeERKNS_9_Any_dataE(%rip),
 %rax
        leaq    
_ZN3vtk6detail3smp23ExecuteFunctorSTDThreadINS1_27vtkSMPTools_FunctorInternalIN12_GLOBAL__N_19CountUsesIxEELb0EEEEEvPvxxx(%rip),
 %r15
        pushq   %r14
        movq    %rax, %xmm1
        pushq   %r13
        pushq   %r12
        movq    %rdx, %r12
        pushq   %rbp
        movq    %r8, %rbp
        pushq   %rbx
        movq    %rcx, %rbx
        subq    $40, %rsp
        movl    For_threadNumber(%rip), %esi
        movq    .LC0(%rip), %xmm0
        leaq    31(%rsp), %r13
        punpcklqdq      %xmm1, %xmm0
        movq    %r13, %rdi
        movaps  %xmm0, (%rsp)
        call    _ZN3vtk6detail3smp16vtkSMPThreadPoolC1Ei@PLT
        movq    (%rsp), %r14
        .p2align 4,,10
        .p2align 3
@@ -191,9 +191,9 @@ vtkConstrainedSmoothingFilterRequestData
        .size   For_threadNumber, 4
 For_threadNumber:
        .zero   4
-       .section        .data.rel.ro.local,"aw"
+       .section        
.data.rel.ro.local._ZN4blah17_Function_handlerIFvvENS_5_BindIFPFvPvxxxEPN3vtk6detail3smp27vtkSMPTools_FunctorInternalIN12_GLOBAL__N_19CountUsesIxEELb0EEExxxEEEE10_M_managerERNS_9_Any_dataERKSI_NS_18_Manager_operationE,"awG",@progbits,_ZN26vtkStaticCellLinksTemplateIxE18ThreadedBuildLinksExxP12vtkCellArray,comdat
        .align 8
 .LC0:
        .quad   
_ZN4blah17_Function_handlerIFvvENS_5_BindIFPFvPvxxxEPN3vtk6detail3smp27vtkSMPTools_FunctorInternalIN12_GLOBAL__N_19CountUsesIxEELb0EEExxxEEEE10_M_managerERNS_9_Any_dataERKSI_NS_18_Manager_operationE
-       .ident  "GCC: (GNU) 14.0.1 20240127 (experimental)"
+       .ident  "GCC: (GNU) 14.0.1 20240129 (experimental)"
        .section        .note.GNU-stack,"",@progbits

        Jakub

Reply via email to