[PATCH] D99839: [C++, test] Fix typo in NSS* vars

Chuanqi Xu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 20 03:42:01 PDT 2021


ChuanqiXu added inline comments.


================
Comment at: clang/test/CodeGenCXX/split-stacks.cpp:30
 // CHECK-NOSEGSTK: define dso_local i32 @_Z7nosplitv() [[NSS1:#[0-9]+]] {
 // CHECK-NOSEGSTK: define linkonce_odr dso_local i32 @_Z8tnosplitIiEiv() [[NSS2:#[0-9]+]] comdat {
+// CHECK-NOSEGSTK-NOT: [[NSS0]] = { {{.*}} "split-stack" {{.*}} }
----------------
thopre wrote:
> ChuanqiXu wrote:
> > thopre wrote:
> > > ChuanqiXu wrote:
> > > > I find NSS2 equals to NSS0, which is `#0`. It looks good to me if this could handle the inconsistency.
> > > Only without split stack (second RUN line). With split stack I get:
> > > 
> > > 
> > > ```
> > > ; Function Attrs: noinline nounwind optnone uwtable mustprogress
> > > define dso_local i32 @_Z3foov() #0 {
> > > entry:
> > >   ret i32 0
> > > }
> > > 
> > > ; Function Attrs: noinline optnone uwtable mustprogress
> > > define dso_local i32 @_Z7nosplitv() #1 {
> > > entry:
> > >   %call = call i32 @_Z8tnosplitIiEiv()
> > >   ret i32 %call
> > > }
> > > 
> > > ; Function Attrs: noinline nounwind optnone uwtable mustprogress
> > > define linkonce_odr dso_local i32 @_Z8tnosplitIiEiv() #2 comdat {
> > > entry:
> > >   ret i32 0
> > > }
> > > 
> > > ```
> > Yeah, this is what I get without split stack:
> > ```
> > ; Function Attrs: noinline nounwind optnone uwtable mustprogress
> > define dso_local i32 @_Z3foov() #0 {
> > entry:
> >   ret i32 0
> > }
> > 
> > ; Function Attrs: noinline optnone uwtable mustprogress
> > define dso_local i32 @_Z7nosplitv() #1 {
> > entry:
> >   %call = call i32 @_Z8tnosplitIiEiv()
> >   ret i32 %call
> > }
> > 
> > ; Function Attrs: noinline nounwind optnone uwtable mustprogress
> > define linkonce_odr dso_local i32 @_Z8tnosplitIiEiv() #0 comdat {
> > entry:
> >   ret i32 0
> > }
> > 
> > attributes #0 = { noinline nounwind optnone uwtable mustprogress "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
> > attributes #1 = { noinline optnone uwtable mustprogress "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
> > ```
> > 
> > My compiler version is latest trunk:2ea6ed9b70c6495342e39a7d1.
> We get the same thing. The code I pasted about was *with* split stack. Since it's the same FileCheck directive with and without split stack it makes sense to keep NSS0 and NSS2 separate otherwise the split-stack case would fail.
The FileCheck directive seems different with and without split stack. And the number of attributes is different from what we paste.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D99839



More information about the cfe-commits mailing list