[PATCH] D100388: [BROKEN][clang] Try to fix thunk function types

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 12 11:06:54 PDT 2021


lebedev.ri updated this revision to Diff 344877.
lebedev.ri marked 2 inline comments as done.
lebedev.ri added a comment.

In D100388#2749115 <https://reviews.llvm.org/D100388#2749115>, @efriedma wrote:

> Made a couple suggestions to make this easier to review.
>
> The test changes you've made so far seem reasonable.
>
> Is there some specific section of the code you want feedback on?

Thank you for taking a look!
Basically, i'm not sure this is right, and i'm not sure what is going wrong.
For example

  $ ./bin/llvm-lit /repositories/llvm-project/clang/test/CodeGen/available-externally-hidden.cpp -v
  llvm-lit: /repositories/llvm-project/llvm/utils/lit/lit/llvm/config.py:428: note: using clang: /builddirs/llvm-project/build-Clang12/bin/clang
  -- Testing: 1 tests, 1 workers --
  FAIL: Clang :: CodeGen/available-externally-hidden.cpp (1 of 1)
  ******************** TEST 'Clang :: CodeGen/available-externally-hidden.cpp' FAILED ********************
  Script:
  --
  : 'RUN: at line 1';   /builddirs/llvm-project/build-Clang12/bin/clang -cc1 -internal-isystem /builddirs/llvm-project/build-Clang12/lib/clang/13.0.0/include -nostdsysteminc -O2 -fvisibility hidden -std=c++11 -emit-llvm -o - -triple x86_64-apple-darwin10 /repositories/llvm-project/clang/test/CodeGen/available-externally-hidden.cpp | /builddirs/llvm-project/build-Clang12/bin/FileCheck /repositories/llvm-project/clang/test/CodeGen/available-externally-hidden.cpp
  --
  Exit Code: 2
  
  Command Output (stderr):
  --
  /repositories/llvm-project/clang/test/CodeGen/available-externally-hidden.cpp:14:16: error: cannot compile this thunk for forward declaration yet
    virtual bool Send(Message* msg) = 0;
                 ^
  1 error generated.
  FileCheck error: '<stdin>' is empty.
  FileCheck command line:  /builddirs/llvm-project/build-Clang12/bin/FileCheck /repositories/llvm-project/clang/test/CodeGen/available-externally-hidden.cpp
  
  --
  
  ********************
  ********************
  Failed Tests (1):
    Clang :: CodeGen/available-externally-hidden.cpp
  
  
  Testing Time: 0.18s
    Failed: 1

Would it be reasonable to instead start with a stopgap measure of not adding attributes for `this`/return of thunks?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100388/new/

https://reviews.llvm.org/D100388

Files:
  clang/include/clang/AST/VTableBuilder.h
  clang/include/clang/Basic/Thunk.h
  clang/lib/AST/MicrosoftMangle.cpp
  clang/lib/AST/VTableBuilder.cpp
  clang/lib/CodeGen/CGVTables.cpp
  clang/lib/CodeGen/CodeGenFunction.h
  clang/lib/CodeGen/MicrosoftCXXABI.cpp
  clang/test/CodeGen/available-externally-hidden.cpp
  clang/test/CodeGenCXX/RelativeVTablesABI/diamond-inheritance.cpp
  clang/test/CodeGenCXX/RelativeVTablesABI/multiple-inheritance.cpp
  clang/test/CodeGenCXX/thunk-linkonce-odr.cpp
  clang/test/CodeGenCXX/thunk-returning-memptr.cpp
  clang/test/CodeGenCXX/thunk-wrong-return-type.cpp
  clang/test/CodeGenCXX/thunk-wrong-this.cpp
  clang/test/CodeGenCXX/thunks.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D100388.344877.patch
Type: text/x-patch
Size: 38796 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210512/cb81f363/attachment.bin>


More information about the llvm-commits mailing list