diff --git a/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp b/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp --- a/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp +++ b/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp @@ -263,11 +263,11 @@ for (const auto &E : Symbols) { const MangledSymbol &Symbol = E.second; for (auto Name : Symbol.Names) { - OS << " " + OS << " \"" << (Symbol.ParentName.empty() || Instance.getLangOpts().CPlusPlus ? "" : (Symbol.ParentName + ".")) - << Name << ": { Type: "; + << Name << "\" : { Type: "; switch (Symbol.Type) { default: llvm_unreachable( diff --git a/clang/test/InterfaceStubs/inline.c b/clang/test/InterfaceStubs/inline.c --- a/clang/test/InterfaceStubs/inline.c +++ b/clang/test/InterfaceStubs/inline.c @@ -56,8 +56,8 @@ // RUN: -c -std=gnu89 -xc %s | llvm-nm - 2>&1 | \ // RUN: FileCheck -check-prefix=CHECK-SYMBOLS %s -// CHECK-TAPI-DAG: foo: { Type: Func } -// CHECK-TAPI-DAG: foo.var: { Type: Object, Size: 4 } +// CHECK-TAPI-DAG: "foo" : { Type: Func } +// CHECK-TAPI-DAG: "foo.var" : { Type: Object, Size: 4 } // CHECK-SYMBOLS-DAG: foo // CHECK-SYMBOLS-DAG: foo.var #include "inline.h" diff --git a/clang/test/InterfaceStubs/object.c b/clang/test/InterfaceStubs/object.c --- a/clang/test/InterfaceStubs/object.c +++ b/clang/test/InterfaceStubs/object.c @@ -2,6 +2,6 @@ // RUN: %clang -fvisibility=default -c -o - -emit-interface-stubs %s | FileCheck -check-prefix=CHECK-SYMBOLS %s // RUN: %clang -fvisibility=default -c -o - %s | llvm-nm - 2>&1 | FileCheck -check-prefix=CHECK-SYMBOLS %s -// CHECK-TAPI: data: { Type: Object, Size: 4 } +// CHECK-TAPI: "data" : { Type: Object, Size: 4 } // CHECK-SYMBOLS: data int data = 42; diff --git a/clang/test/InterfaceStubs/windows.cpp b/clang/test/InterfaceStubs/windows.cpp new file mode 100644 --- /dev/null +++ b/clang/test/InterfaceStubs/windows.cpp @@ -0,0 +1,7 @@ +// REQUIRES: x86-registered-target +// RUN: %clang -target x86_64-windows-msvc -o - %s \ +// RUN: -emit-interface-stubs -emit-merged-ifs | FileCheck %s + +// CHECK: Symbols: +// CHECK-NEXT: ?helloWindowsMsvc@@YAHXZ +int helloWindowsMsvc();