[llvm-bugs] [Bug 34056] New: Regression(r304267): clang miscompiles chrome on arm32

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Aug 3 14:40:06 PDT 2017


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

            Bug ID: 34056
           Summary: Regression(r304267): clang miscompiles chrome on arm32
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: ARM
          Assignee: unassignedbugs at nondot.org
          Reporter: nicolasweber at gmx.de
                CC: llvm-bugs at lists.llvm.org

Chrome and all of its test binaries fail when built in a debug build on arm32.
We bisected this down to r304267.

https://bugs.chromium.org/p/chromium/issues/detail?id=742563#c15 has some
analysis on what's wrong. The file mentioned there is
https://cs.chromium.org/chromium/src/base/threading/thread_local_storage.cc?q=base/threading/thread_local_storage.cc&sq=package:chromium&dr&l=320

  TlsVectorEntry* tls_data = static_cast<TlsVectorEntry*>(
      PlatformThreadLocalStorage::GetTLSValue(
          base::subtle::NoBarrier_Load(&g_native_tls_key)));
  if (!tls_data)
    tls_data = ConstructTlsVector();
  DCHECK_NE(slot_, kInvalidSlotValue);
  DCHECK_LT(slot_, kThreadLocalStorageSize);
  tls_data[slot_].data = value;
  tls_data[slot_].version = version_;

"First ThreadLocalStorage::StaticSlot::Set(void* value) gets called, then when
ThreadLocalStorage::StaticSlot::Get() is called later on, tls_data is null, and
ConstructTlsVector() is called again." (this is the bug)

-- 
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/20170803/fa8c99c6/attachment-0001.html>


More information about the llvm-bugs mailing list