majnemer added a comment.

Hmm, I'm not so sure this will work with constexpr:

  #include <stdio.h>
  struct __declspec(dllimport) S {
      virtual void fn() const {printf("%s\n", "hi");}
      constexpr S() = default;
  };
  
  constexpr S s;
  auto &x = s;
  
  int main() {
      x.fn();
  }

Before my change we would reference the imported vftable symbol from the .rdata 
section which will fail at link time.
IIRC, MSVC will miscompile this example.

Your change, if I understand correctly, will cause us to import the vftable 
symbol which would cause this example to break again.


http://reviews.llvm.org/D22034



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to