[PATCH] D60912: MS ABI: handle inline static data member as template static data member

Jennifer Yu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 19 13:19:39 PDT 2019


jyu2 added a comment.

In D60912#1472983 <https://reviews.llvm.org/D60912#1472983>, @rnk wrote:

> Thanks, I think there's another case to handle, though.


Hi Reid,
Thank you so much for the review.

Yes, I check the following test case, both gnu and cl call foo twice.  Do we want to do differently with that?  Thanks.  Jennifer
I add MS only, since we are generate same with gnu.  Sure remove that should work at run time.  But I am not sure if we have abi issues when mix-match object.  I will look more about that.    Thanks.

bug-37903>g++ x.cpp x1.cpp -std=c++17
bug-37903>./a.out
foo
foo

bug-37903>cat x.h
extern "C" int printf(const char*,...);
int foo();
inline static int aoo = foo(); // C++17 inline variable, thus also a definition
bug-37903>cat x.cpp
#include "x.h"
int foo()
{

  printf("foo\n");
  return 1;

}
int main()
{
}
bug-37903>cat x1.cpp
#include "x.h"


Repository:
  rC Clang

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

https://reviews.llvm.org/D60912





More information about the cfe-commits mailing list