[PATCH] Abstract out the emission of vtables, add basic support for vtable emission when using -cxx-abi microsoft

Timur Iskhodzhanov timurrrr at google.com
Tue Sep 3 11:44:04 PDT 2013


  Thanks!
  John, can you please take a look? (I'll update the comments tomorrow, shouldn't block the review)

  Reid,

  > BTW, I don't think CGExprConstant.cpp affects the C++11 constexpr stuff we were talking
  > about earlier today. It's optimizing dynamic initialization to static initialization.

  Well, this codepath is only triggered if you use constexpr on a class/struct with vftables :)
  Shouldn't affect other constexpr stuff - can you please run some tests to see if what you're interested in just works?


================
Comment at: lib/CodeGen/CGDebugInfo.cpp:1074
@@ +1073,3 @@
+    // FIXME: Add proper support for virtual calls in the Microsoft ABI,
+    // where we may use various vptrs to make a vftable lookup.
+    if (!isa<CXXDestructorDecl>(Method) &&
----------------
Reid Kleckner wrote:
> The Microsoft ABI doesn't use "various" vptrs, does it?  It just uses a different one?
A class might have multiple vfptrs and different vcalls might need to use different vfptrs. Can you suggest a better wording?


http://llvm-reviews.chandlerc.com/D1532



More information about the cfe-commits mailing list