[llvm-bugs] [Bug 37136] New: VS 2017: error G15E2B2A9: cannot use more than one symbol in memory operand

via llvm-bugs llvm-bugs at lists.llvm.org
Sun Apr 15 10:07:01 PDT 2018


https://bugs.llvm.org/show_bug.cgi?id=37136

            Bug ID: 37136
           Summary: VS 2017: error G15E2B2A9: cannot use more than one
                    symbol in memory operand
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: llvm at reupen.uk
                CC: llvm-bugs at lists.llvm.org

Created attachment 20192
  --> https://bugs.llvm.org/attachment.cgi?id=20192&action=edit
Generated stdafx.asm file

With Clang trunk, I have (recently) been getting the following errors when
building my project:


F:\foobar2000\columns_ui\vc15\Release\foo_ui_columns\stdafx.asm:67:14: error:
cannot use more than one symbol in memory operand
        push    offset
"??__Fdata@?$_service_by_guid_data_container at Vui_element@@@@2V?$service_by_guid_data at Vui_element@@@@A at YAXXZ"
                       ^
F:\foobar2000\columns_ui\vc15\Release\foo_ui_columns\stdafx.asm:101:14: error:
cannot use more than one symbol in memory operand
        push    offset
"?data@?$_service_by_guid_data_container at Vui_element@@@@2V?$service_by_guid_data at Vui_element@@@@A"+4
                       ^
F:\foobar2000\columns_ui\vc15\Release\foo_ui_columns\stdafx.asm:345:14: error:
cannot use more than one symbol in memory operand
        push    offset "??__Fwindow_ptr_null at uie@@YAXXZ"


The errors appear to be referring to certain static data members.



For the third error, here is some more context from the generated stdafx.asm
file (entire file attached):

        .def     __GLOBAL__sub_I_stdafx.cpp;
        .scl    3;
        .type   32;
        .endef
        .section        .text,"xr",one_only,__GLOBAL__sub_I_stdafx.cpp
        .p2align        4, 0x90         # -- Begin function
_GLOBAL__sub_I_stdafx.cpp
__GLOBAL__sub_I_stdafx.cpp:             # @_GLOBAL__sub_I_stdafx.cpp
Lfunc_begin4:
        .cv_func_id 38
        .cv_loc 38 7 0 0                # foo_ui_columns\stdafx.cpp:0:0
        .cv_fpo_proc    __GLOBAL__sub_I_stdafx.cpp 0
# %bb.0:
        push    ebp
        .cv_fpo_pushreg ebp
        mov     ebp, esp
        .cv_fpo_setframe        ebp
        .cv_fpo_endprologue
Ltmp40:
        .cv_inline_site_id 39 within 38 inlined_at 7 0 0
        .cv_loc 39 1 134 0              #
foo_ui_columns/../columns_ui-sdk/ui_extension.h:134:0
        push    offset "??__Fwindow_ptr_null at uie@@YAXXZ"
        call    _atexit
        add     esp, 4
        pop     ebp
        ret
Ltmp41:
        .cv_fpo_endproc
Lfunc_end4:


The respective static member is declared and defined here:
https://github.com/reupen/columns_ui-sdk/blob/677c84a79411a2b1e96d3141ba091cb35b52896e/ui_extension.h#L134


Clang was built today, from the GitHub mirror:

F:\foobar2000\columns_ui>clang --version
clang version 7.0.0 (https://github.com/llvm-mirror/clang
ea7b75a952203b9a2baedad66ec3e3397bb74386)
(https://github.com/llvm-mirror/llvm.git
5365e8b41893d044805a280c862c6a9a8732f3cc)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin



I've been seeing this for at least a few months, but this does not happen under
Clang 6.0.0.


I don't have a minimal example of this, but the relevant project I'm seeing
this in is at https://github.com/reupen/columns_ui

The relevant command that triggers the error (in a VS 2017 command prompt) is
(adjust paths as necessary):

"C:\Program Files\LLVM\msbuild-bin\CL.exe" /c
/I"F:\foobar2000\vcpkg\installed\x86-windows\include" /Zi /nologo /W3 /WX-
/diagnostics:caret /MP /O2 /Oy- /GL /D WIN32 /D NDEBUG /D _WINDOWS /D _USRDLL
/D _WIN32_WINNT=0x0600 /D _WINDLL /D _UNICODE /D UNICODE /Gm- /EHsc /MT /GS-
/arch:IA32 /fp:precise /permissive- /Zc:wchar_t /Zc:forScope /Zc:inline /GR-
/std:c++17 /Yc"stdafx.h"
/Fp"F:\foobar2000\columns_ui\vc15\Release\foo_ui_columns\foo_ui_columns.pch"
/FAcs /Fa"F:\foobar2000\columns_ui\vc15\Release\foo_ui_columns\\"
/Fo"F:\foobar2000\columns_ui\vc15\Release\foo_ui_columns\\"
/Fd"F:\foobar2000\columns_ui\vc15\Release\foo_ui_columns\vc141.pdb" /Gd /TP
/analyze- /FC /errorReport:queue /Zc:threadSafeInit- /source-charset:utf-8 -m32
-fmsc-version=1910 foo_ui_columns\stdafx.cpp

(If trying to build, please note the requirements specified in the GitHub
README i.e. VS 2017, Windows 10 SDK, MS GSL.)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20180415/2aee5914/attachment.html>


More information about the llvm-bugs mailing list