[PATCH] D13263: Addition of __attribute__((pass_object_size)) to Clang

George Burgess IV via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 23 16:59:59 PST 2015


george.burgess.iv updated this revision to Diff 40998.
george.burgess.iv added a comment.

Rebased + made Windows `pass_object_size` mangling scheme more like Itanium’s.

I can’t find an explicit extension point here <http://www.agner.org/optimize/calling_conventions.pdf>, so the current approach is to mangle `void foo(void *__attribute__((pass_object_size(0))));` as if it was `void foo(void *, ::__ext::__pass_object_size0);`, and hope that there’s never a collision. Suggestions for better ways to do this are welcome. :)


http://reviews.llvm.org/D13263

Files:
  include/clang/AST/Expr.h
  include/clang/Basic/Attr.td
  include/clang/Basic/AttrDocs.td
  include/clang/Basic/DiagnosticSemaKinds.td
  include/clang/CodeGen/CodeGenABITypes.h
  include/clang/Sema/Initialization.h
  include/clang/Sema/Sema.h
  include/clang/Sema/TemplateDeduction.h
  lib/AST/ExprConstant.cpp
  lib/AST/ItaniumMangle.cpp
  lib/AST/MicrosoftMangle.cpp
  lib/CodeGen/CGBuiltin.cpp
  lib/CodeGen/CGCXXABI.cpp
  lib/CodeGen/CGCall.cpp
  lib/CodeGen/CodeGenABITypes.cpp
  lib/CodeGen/CodeGenFunction.cpp
  lib/CodeGen/CodeGenFunction.h
  lib/CodeGen/CodeGenModule.cpp
  lib/CodeGen/CodeGenTypes.cpp
  lib/CodeGen/CodeGenTypes.h
  lib/CodeGen/ItaniumCXXABI.cpp
  lib/CodeGen/MicrosoftCXXABI.cpp
  lib/Sema/SemaChecking.cpp
  lib/Sema/SemaDecl.cpp
  lib/Sema/SemaDeclAttr.cpp
  lib/Sema/SemaExpr.cpp
  lib/Sema/SemaInit.cpp
  lib/Sema/SemaLambda.cpp
  lib/Sema/SemaOverload.cpp
  lib/Sema/SemaTemplate.cpp
  lib/Sema/SemaType.cpp
  test/CodeGen/pass-object-size.c
  test/CodeGenCXX/mangle-ms-cxx11.cpp
  test/CodeGenCXX/pass-object-size.cpp
  test/Sema/pass-object-size.c
  test/SemaCXX/init-priority-attr.cpp
  test/SemaCXX/pass-object-size.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13263.40998.patch
Type: text/x-patch
Size: 109788 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151124/1e48064b/attachment-0001.bin>


More information about the cfe-commits mailing list