[llvm-bugs] [Bug 50618] New: Binary inconsistency problems with occasional precedence
via llvm-bugs
llvm-bugs at lists.llvm.org
Tue Jun 8 02:36:49 PDT 2021
https://bugs.llvm.org/show_bug.cgi?id=50618
Bug ID: 50618
Summary: Binary inconsistency problems with occasional
precedence
Product: clang
Version: 10.0
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P
Component: C++11
Assignee: unassignedclangbugs at nondot.org
Reporter: 2077213809 at qq.com
CC: blitzrakete at gmail.com, dgregor at apple.com,
erik.pilkington at gmail.com, llvm-bugs at lists.llvm.org,
richard-llvm at metafoo.co.uk
When I compile llvm10.0.1 with clang 8.0.1, there is a probability that binary
inconsistency occurs, and only clang is inconsistent, with assembly differences
generated by several .o files, and sometimes extra functions. Sometimes it
doesn't.
I ran the build in exactly the same environment, and there was no change in the
build parameters or code location.Repeated builds about 20 times will make a
difference.
I recorded a difference in .o, which adds some smart pointer functions.
InterfaceStubFunctionsConsumer.cpp.o
I don't have any good ideas. Is this a known problem?
-../../../ok_2/obj/build-llvm/tools/clang/lib/Frontend/CMakeFiles/obj.clangFrontend.dir/InterfaceStubFunctionsConsumer.cpp.o:
file format elf64-x86-64
+./tools/clang/lib/Frontend/CMakeFiles/obj.clangFrontend.dir/InterfaceStubFunctionsConsumer.cpp.o:
file format elf64-x86-64
Disassembly of section
.text._ZN5clang31GenerateInterfaceIfsExpV1Action17CreateASTConsumerERNS_16CompilerInstanceEN4llvm9StringRefE:
0000000000000000
<clang::GenerateInterfaceIfsExpV1Action::CreateASTConsumer(clang::CompilerInstance&,
llvm::StringRef)>:
+ 0: 41 56 push %r14
+ 2: 53 push %rbx
+ 3: 48 83 ec 18 sub $0x18,%rsp
+ 7: 48 89 fb mov %rdi,%rbx
+ a: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax
+ 11: 00 00
+ 13: 48 89 44 24 10 mov %rax,0x10(%rsp)
+ 18: 4c 8d 74 24 08 lea 0x8(%rsp),%r14
+ 1d: 4c 89 f7 mov %r14,%rdi
+ 20: 48 89 d6 mov %rdx,%rsi
+ 23: 48 89 ca mov %rcx,%rdx
+ 26: 4c 89 c1 mov %r8,%rcx
+ 29: e8 00 00 00 00 callq 2e
<clang::GenerateInterfaceIfsExpV1Action::CreateASTConsumer(clang::CompilerInstance&,
llvm::StringRef)+0x2e>
+ 2e: 48 89 df mov %rbx,%rdi
+ 31: 4c 89 f6 mov %r14,%rsi
+ 34: e8 00 00 00 00 callq 39
<clang::GenerateInterfaceIfsExpV1Action::CreateASTConsumer(clang::CompilerInstance&,
llvm::StringRef)+0x39>
+ 39: 4c 89 f7 mov %r14,%rdi
+ 3c: e8 00 00 00 00 callq 41
<clang::GenerateInterfaceIfsExpV1Action::CreateASTConsumer(clang::CompilerInstance&,
llvm::StringRef)+0x41>
+ 41: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax
+ 48: 00 00
+ 4a: 48 3b 44 24 10 cmp 0x10(%rsp),%rax
+ 4f: 75 0b jne 5c
<clang::GenerateInterfaceIfsExpV1Action::CreateASTConsumer(clang::CompilerInstance&,
llvm::StringRef)+0x5c>
+ 51: 48 89 d8 mov %rbx,%rax
+ 54: 48 83 c4 18 add $0x18,%rsp
+ 58: 5b pop %rbx
+ 59: 41 5e pop %r14
+ 5b: c3 retq
+ 5c: e8 00 00 00 00 callq 61 <.L.str.4+0x7>
+
+Disassembly of section
.text._ZSt11make_uniqueIN12_GLOBAL__N_130InterfaceStubFunctionsConsumerEJRN5clang16CompilerInstanceERN4llvm9StringRefERA20_KcEENSt9_MakeUniqIT_E15__single_objectEDpOT0_:
+
+0000000000000000 <std::_MakeUniq<(anonymous
namespace)::InterfaceStubFunctionsConsumer>::__single_object
std::make_unique<(anonymous namespace)::InterfaceStubFunctionsConsumer,
clang::CompilerInstance&, llvm::StringRef&, char const (&)
[20]>(clang::CompilerInstance&, llvm::StringRef&, char const (&) [20])>:
0: 41 57 push %r15
2: 41 56 push %r14
4: 41 54 push %r12
6: 53 push %rbx
7: 50 push %rax
- 8: 4d 89 c6 mov %r8,%r14
- b: 49 89 cf mov %rcx,%r15
- e: 49 89 d4 mov %rdx,%r12
- 11: 48 89 fb mov %rdi,%rbx
+ 8: 49 89 ce mov %rcx,%r14
+ b: 49 89 d7 mov %rdx,%r15
+ e: 48 89 f3 mov %rsi,%rbx
+ 11: 49 89 fc mov %rdi,%r12
- 79: 41 5c pop %r12
- 7b: 41 5e pop %r14
- 7d: 41 5f pop %r15
- 7f: c3 retq
+ 6e: 49 89 04 24 mov %rax,(%r12)
+ 72: 48 83 c4 08 add $0x8,%rsp
+ 76: 5b pop %rbx
+ 77: 41 5c pop %r12
+ 79: 41 5e pop %r14
+ 7b: 41 5f pop %r15
+ 7d: c3 retq
+
+Disassembly of section
.text._ZNSt10unique_ptrIN5clang11ASTConsumerESt14default_deleteIS1_EEC2IN12_GLOBAL__N_130InterfaceStubFunctionsConsumerES2_IS7_EvEEOS_IT_T0_E:
+
+0000000000000000 <std::unique_ptr<clang::ASTConsumer,
std::default_delete<clang::ASTConsumer> >::unique_ptr<(anonymous
namespace)::InterfaceStubFunctionsConsumer, std::default_delete<(anonymous
namespace)::InterfaceStubFunctionsConsumer>, void>(std::unique_ptr<(anonymous
namespace)::InterfaceStubFunctionsConsumer, std::default_delete<(anonymous
namespace)::InterfaceStubFunctionsConsumer> >&&)>:
+ 0: 48 8b 06 mov (%rsi),%rax
+ 3: 48 c7 06 00 00 00 00 movq $0x0,(%rsi)
+ a: 48 89 07 mov %rax,(%rdi)
+ d: c3 retq
+
+Disassembly of section
.text._ZNSt10unique_ptrIN12_GLOBAL__N_130InterfaceStubFunctionsConsumerESt14default_deleteIS1_EED2Ev:
+
+0000000000000000 <std::unique_ptr<(anonymous
namespace)::InterfaceStubFunctionsConsumer, std::default_delete<(anonymous
namespace)::InterfaceStubFunctionsConsumer> >::~unique_ptr()>:
+ 0: 53 push %rbx
+ 1: e8 00 00 00 00 callq 6 <std::unique_ptr<(anonymous
namespace)::InterfaceStubFunctionsConsumer, std::default_delete<(anonymous
namespace)::InterfaceStubFunctionsConsumer> >::~unique_ptr()+0x6>
+ 6: 48 89 c3 mov %rax,%rbx
+ 9: 48 83 38 00 cmpq $0x0,(%rax)
+ d: 74 08 je 17 <std::unique_ptr<(anonymous
namespace)::InterfaceStubFunctionsConsumer, std::default_delete<(anonymous
namespace)::InterfaceStubFunctionsConsumer> >::~unique_ptr()+0x17>
+ f: 48 8b 3b mov (%rbx),%rdi
+ 12: e8 00 00 00 00 callq 17 <std::unique_ptr<(anonymous
namespace)::InterfaceStubFunctionsConsumer, std::default_delete<(anonymous
namespace)::InterfaceStubFunctionsConsumer> >::~unique_ptr()+0x17>
+ 17: 48 c7 03 00 00 00 00 movq $0x0,(%rbx)
+ 1e: 5b pop %rbx
+ 1f: c3 retq
Disassembly of section
.text._ZN5clang14FrontendAction22PrepareToExecuteActionERNS_16CompilerInstanceE:
@@ -25384,3 +25437,18 @@ Disassembly of section
.text._ZNSt8_Rb_treeIPKN5clang9NamedDeclES3_St9_IdentityI
31: 41 5e pop %r14
33: 41 5f pop %r15
35: c3 retq
+
+Disassembly of section
.text._ZNSt15__uniq_ptr_implIN12_GLOBAL__N_130InterfaceStubFunctionsConsumerESt14default_deleteIS1_EE6_M_ptrEv:
+
+0000000000000000 <std::__uniq_ptr_impl<(anonymous
namespace)::InterfaceStubFunctionsConsumer, std::default_delete<(anonymous
namespace)::InterfaceStubFunctionsConsumer> >::_M_ptr()>:
+ 0: 48 89 f8 mov %rdi,%rax
+ 3: c3 retq
+
+Disassembly of section
.text._ZNKSt14default_deleteIN12_GLOBAL__N_130InterfaceStubFunctionsConsumerEEclEPS1_:
+
+0000000000000000 <std::default_delete<(anonymous
namespace)::InterfaceStubFunctionsConsumer>::operator()((anonymous
namespace)::InterfaceStubFunctionsConsumer*) const>:
+ 0: 48 85 ff test %rdi,%rdi
+ 3: 74 06 je b <std::default_delete<(anonymous
namespace)::InterfaceStubFunctionsConsumer>::operator()((anonymous
namespace)::InterfaceStubFunctionsConsumer*) const+0xb>
+ 5: 48 8b 07 mov (%rdi),%rax
+ 8: ff 60 08 jmpq *0x8(%rax)
+ b: c3 retq
--
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/20210608/d3740d65/attachment.html>
More information about the llvm-bugs
mailing list