The builder is just fixed, so I am wrong. Sorry to bother you. Thanks
Galina On Fri, Aug 31, 2018 at 1:08 PM Zachary Turner <ztur...@google.com> wrote: > Are we sure it was my commit? Because this seems like a very unusual > failure given the nature of the commit. I'll try to reproduce it locally > and report back. > > On Fri, Aug 31, 2018 at 11:49 AM Galina Kistanova <gkistan...@gmail.com> > wrote: > >> Hello Zachary, >> >> It looks like this commit added broken tests on one of our builders: >> >> http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/19508 >> >> . . . >> Failing Tests (2): >> LLVM-Unit :: ADT/./ADTTests.exe/HashingTest.HashCombineRangeGoldenTest >> Clang :: CodeGenCXX/catch-undef-behavior.cpp >> >> Please have a look? >> The builder was already red and did not send notifications on this. >> >> Thanks >> >> Galina >> >> On Thu, Aug 30, 2018 at 1:54 PM Zachary Turner via cfe-commits < >> cfe-commits@lists.llvm.org> wrote: >> >>> Author: zturner >>> Date: Thu Aug 30 13:53:11 2018 >>> New Revision: 341117 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=341117&view=rev >>> Log: >>> [MS ABI] Fix mangling issue with dynamic initializer stubs. >>> >>> There are two types of dynamic initializer stubs. There's >>> >>> `dynamic initializer for 'x''(void) >>> >>> and >>> >>> `dynamic initializer for `static Foo::Bar StaticDataMember''(void) >>> >>> The second case is disambiguated from the first by the presence of >>> a ? after the operator code. So the first will appear something like >>> ?__E<name> while the second will appear something like ?__E?<name>. >>> clang-cl was mangling these both the same though. This patch >>> matches behavior with cl. >>> >>> Differential Revision: https://reviews.llvm.org/D51500 >>> >>> Modified: >>> cfe/trunk/lib/AST/MicrosoftMangle.cpp >>> cfe/trunk/test/CodeGenCXX/microsoft-abi-static-initializers.cpp >>> cfe/trunk/test/CodeGenCXX/pragma-init_seg.cpp >>> >>> Modified: cfe/trunk/lib/AST/MicrosoftMangle.cpp >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/MicrosoftMangle.cpp?rev=341117&r1=341116&r2=341117&view=diff >>> >>> ============================================================================== >>> --- cfe/trunk/lib/AST/MicrosoftMangle.cpp (original) >>> +++ cfe/trunk/lib/AST/MicrosoftMangle.cpp Thu Aug 30 13:53:11 2018 >>> @@ -3217,10 +3217,13 @@ void MicrosoftMangleContextImpl::mangleI >>> msvc_hashing_ostream MHO(Out); >>> MicrosoftCXXNameMangler Mangler(*this, MHO); >>> Mangler.getStream() << "??__" << CharCode; >>> - Mangler.mangleName(D); >>> if (D->isStaticDataMember()) { >>> + Mangler.getStream() << '?'; >>> + Mangler.mangleName(D); >>> Mangler.mangleVariableEncoding(D); >>> - Mangler.getStream() << '@'; >>> + Mangler.getStream() << "@@"; >>> + } else { >>> + Mangler.mangleName(D); >>> } >>> // This is the function class mangling. These stubs are global, >>> non-variadic, >>> // cdecl functions that return void and take no args. >>> >>> Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-static-initializers.cpp >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-static-initializers.cpp?rev=341117&r1=341116&r2=341117&view=diff >>> >>> ============================================================================== >>> --- cfe/trunk/test/CodeGenCXX/microsoft-abi-static-initializers.cpp >>> (original) >>> +++ cfe/trunk/test/CodeGenCXX/microsoft-abi-static-initializers.cpp Thu >>> Aug 30 13:53:11 2018 >>> @@ -3,8 +3,8 @@ >>> // CHECK: @llvm.global_ctors = appending global [5 x { i32, void ()*, >>> i8* }] [ >>> // CHECK: { i32, void ()*, i8* } { i32 65535, void ()* >>> @"??__Eselectany1@@YAXXZ", i8* getelementptr inbounds (%struct.S, >>> %struct.S* @"?selectany1@@3US@@A", i32 0, i32 0) }, >>> // CHECK: { i32, void ()*, i8* } { i32 65535, void ()* >>> @"??__Eselectany2@@YAXXZ", i8* getelementptr inbounds (%struct.S, >>> %struct.S* @"?selectany2@@3US@@A", i32 0, i32 0) }, >>> -// CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @"??__Es@ >>> ?$ExportedTemplate@H@@2US@@A@YAXXZ", i8* getelementptr inbounds >>> (%struct.S, %struct.S* @"?s@?$ExportedTemplate@H@@2US@@A", i32 0, i32 >>> 0) }, >>> -// CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @"??__Efoo@?$B@H >>> @@2VA@@A@YAXXZ", i8* bitcast (%class.A* @"?foo@?$B@H@@2VA@@A" to i8*) }, >>> +// CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @"??__E?s@ >>> ?$ExportedTemplate@H@@2US@@A@@YAXXZ", i8* getelementptr inbounds >>> (%struct.S, %struct.S* @"?s@?$ExportedTemplate@H@@2US@@A", i32 0, i32 >>> 0) }, >>> +// CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @"??__E?foo@ >>> ?$B@H@@2VA@@A@@YAXXZ", i8* bitcast (%class.A* @"?foo@?$B@H@@2VA@@A" to >>> i8*) }, >>> // CHECK: { i32, void ()*, i8* } { i32 65535, void ()* >>> @_GLOBAL__sub_I_microsoft_abi_static_initializers.cpp, i8* null } >>> // CHECK: ] >>> >>> @@ -231,18 +231,18 @@ void force_usage() { >>> DynamicDLLImportInitVSMangling::switch_test3(); >>> } >>> >>> -// CHECK: define linkonce_odr dso_local void @"??__Efoo@?$B@H@@2VA@ >>> @A@YAXXZ"() {{.*}} comdat >>> +// CHECK: define linkonce_odr dso_local void >>> @"??__E?foo@?$B@H@@2VA@@A@@YAXXZ"() >>> {{.*}} comdat >>> // CHECK-NOT: and >>> // CHECK-NOT: ?_Bfoo@ >>> // CHECK: call x86_thiscallcc %class.A* @"??0A@@QAE@XZ" >>> -// CHECK: call i32 @atexit(void ()* @"??__Ffoo@?$B@H@@2VA@@A@YAXXZ") >>> +// CHECK: call i32 @atexit(void ()* @"??__F?foo@?$B@H@@2VA@@A@@YAXXZ") >>> // CHECK: ret void >>> >>> // CHECK: define linkonce_odr dso_local x86_thiscallcc %class.A* @"??0A@ >>> @QAE@XZ"({{.*}}) {{.*}} comdat >>> >>> // CHECK: define linkonce_odr dso_local x86_thiscallcc void @"??1A@ >>> @QAE@XZ"({{.*}}) {{.*}} comdat >>> >>> -// CHECK: define internal void @"??__Ffoo@?$B@H@@2VA@@A@YAXXZ" >>> +// CHECK: define internal void @"??__F?foo@?$B@H@@2VA@@A@@YAXXZ" >>> // CHECK: call x86_thiscallcc void @"??1A@@QAE@XZ"{{.*}}foo >>> // CHECK: ret void >>> >>> >>> Modified: cfe/trunk/test/CodeGenCXX/pragma-init_seg.cpp >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/pragma-init_seg.cpp?rev=341117&r1=341116&r2=341117&view=diff >>> >>> ============================================================================== >>> --- cfe/trunk/test/CodeGenCXX/pragma-init_seg.cpp (original) >>> +++ cfe/trunk/test/CodeGenCXX/pragma-init_seg.cpp Thu Aug 30 13:53:11 >>> 2018 >>> @@ -44,7 +44,7 @@ template <typename T> struct A { static >>> template <typename T> const int A<T>::x = f(); >>> template struct A<int>; >>> // CHECK: @"?x@?$A@H@explicit_template_instantiation@@2HB" = weak_odr >>> dso_local global i32 0, comdat, align 4 >>> -// CHECK: @__cxx_init_fn_ptr.4 = private constant void ()* @"??__Ex@ >>> ?$A@H@explicit_template_instantiation@@2HB@YAXXZ", section ".asdf", >>> comdat($"?x@?$A@H@explicit_template_instantiation@@2HB") >>> +// CHECK: @__cxx_init_fn_ptr.4 = private constant void ()* @"??__E?x@ >>> ?$A@H@explicit_template_instantiation@@2HB@@YAXXZ", section ".asdf", >>> comdat($"?x@?$A@H@explicit_template_instantiation@@2HB") >>> } >>> >>> namespace implicit_template_instantiation { >>> @@ -52,7 +52,7 @@ template <typename T> struct A { static >>> template <typename T> const int A<T>::x = f(); >>> int g() { return A<int>::x; } >>> // CHECK: @"?x@?$A@H@implicit_template_instantiation@@2HB" = >>> linkonce_odr dso_local global i32 0, comdat, align 4 >>> -// CHECK: @__cxx_init_fn_ptr.5 = private constant void ()* @"??__Ex@ >>> ?$A@H@implicit_template_instantiation@@2HB@YAXXZ", section ".asdf", >>> comdat($"?x@?$A@H@implicit_template_instantiation@@2HB") >>> +// CHECK: @__cxx_init_fn_ptr.5 = private constant void ()* @"??__E?x@ >>> ?$A@H@implicit_template_instantiation@@2HB@@YAXXZ", section ".asdf", >>> comdat($"?x@?$A@H@implicit_template_instantiation@@2HB") >>> } >>> >>> // ... and here's where we emitted user level ctors. >>> >>> >>> _______________________________________________ >>> cfe-commits mailing list >>> cfe-commits@lists.llvm.org >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >>> >>
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits