https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96946

            Bug ID: 96946
           Summary: std::shared_ptr makes an "unrelated cast" that causes
                    Clang's Control Flow Integrity sanitiser to crash
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: cjdb.ns at gmail dot com
  Target Milestone: ---

Created attachment 49186
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49186&action=edit
cfi-error temps

# Compiler details

Ubuntu clang version
11.0.0-++20200829062559+2c6a593b5e1-1~exp1~20200829163219.75
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

# System details

Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:        20.04
Codename:       focal

# Compiler configuration

Unknown: compiler obtained from apt.llvm.org.

# Build trigger

clang++ -std=c++14 -flto -fvisibility=hidden -g -fsanitize=cfi-unrelated-cast
cfi-error.cpp

# Compiler output

Nothing, builds fine.

# Run-time output

$ ./a.out
Illegal instruction

# Thanks

Martin Hořeňovský distilled this from a Catch2 bug to a minimal repro that
exposes it's embedded in libstdc++'s shared_ptr.

Reply via email to