From 71b73d0a5c75298cd26bb44ef502dbe77fbe1289 Mon Sep 17 00:00:00 2001 From: Charles Li Date: Fri, 17 Feb 2017 19:36:19 +0000 Subject: [PATCH] [Test] Make Lit tests C++11 compatible - misc Updated 5 tests. Differential Revision: https://reviews.llvm.org/D24812 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@295484 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGenCXX/mangle-unnamed.cpp | 4 +++- test/CodeGenCXX/static-init.cpp | 8 ++++--- test/CodeGenCXX/volatile-1.cpp | 34 +++++++++++++++++++++--------- test/CodeGenCXX/volatile.cpp | 4 +++- test/PCH/macro-undef.cpp | 6 +++--- 5 files changed, 38 insertions(+), 18 deletions(-) diff --git a/test/CodeGenCXX/mangle-unnamed.cpp b/test/CodeGenCXX/mangle-unnamed.cpp index 43b7bd7953..c90f47b26e 100644 --- a/test/CodeGenCXX/mangle-unnamed.cpp +++ b/test/CodeGenCXX/mangle-unnamed.cpp @@ -48,6 +48,7 @@ int f5() { return a; } +#if __cplusplus <= 199711L int f6() { static union { union { @@ -56,9 +57,10 @@ int f6() { int b; }; - // CHECK: _ZZ2f6vE1b + // CXX98: _ZZ2f6vE1b return b; } +#endif int f7() { static union { diff --git a/test/CodeGenCXX/static-init.cpp b/test/CodeGenCXX/static-init.cpp index bb974948a0..925ddec1ad 100644 --- a/test/CodeGenCXX/static-init.cpp +++ b/test/CodeGenCXX/static-init.cpp @@ -1,4 +1,5 @@ -// RUN: %clang_cc1 %s -triple=x86_64-pc-linuxs -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 %s -triple=x86_64-pc-linuxs -emit-llvm -std=c++98 -o - | FileCheck -check-prefix=CHECK -check-prefix=CHECK98 %s +// RUN: %clang_cc1 %s -triple=x86_64-pc-linuxs -emit-llvm -std=c++11 -o - | FileCheck -check-prefix=CHECK -check-prefix=CHECK11 %s // CHECK: @_ZZ1hvE1i = internal global i32 0, align 4 // CHECK: @base_req = global [4 x i8] c"foo\00", align 1 @@ -9,7 +10,8 @@ // CHECK: @_ZZ2h2vE1i = linkonce_odr global i32 0, comdat, align 4 // CHECK: @_ZGVZ2h2vE1i = linkonce_odr global i64 0, comdat, align 8{{$}} // CHECK: @_ZZN5test1L6getvarEiE3var = internal constant [4 x i32] [i32 1, i32 0, i32 2, i32 4], align 16 -// CHECK: @_ZZN5test414useStaticLocalEvE3obj = linkonce_odr global %"struct.test4::HasVTable" zeroinitializer, comdat, align 8 +// CHECK98: @_ZZN5test414useStaticLocalEvE3obj = linkonce_odr global %"struct.test4::HasVTable" zeroinitializer, comdat, align 8 +// CHECK11: @_ZZN5test414useStaticLocalEvE3obj = linkonce_odr global { i8** } { i8** getelementptr inbounds ({ [3 x i8*] }, { [3 x i8*] }* @_ZTVN5test49HasVTableE, i32 0, inrange i32 0, i32 2) }, comdat, align 8 struct A { A(); @@ -169,5 +171,5 @@ void useit() { useStaticLocal(); } // CHECK: define linkonce_odr dereferenceable(8) %"struct.test4::HasVTable"* @_ZN5test414useStaticLocalEv() -// CHECK: ret %"struct.test4::HasVTable"* @_ZZN5test414useStaticLocalEvE3obj +// CHECK: ret %"struct.test4::HasVTable"*{{.*}} @_ZZN5test414useStaticLocalEvE3obj } diff --git a/test/CodeGenCXX/volatile-1.cpp b/test/CodeGenCXX/volatile-1.cpp index f32e4288b8..75fb0d26f4 100644 --- a/test/CodeGenCXX/volatile-1.cpp +++ b/test/CodeGenCXX/volatile-1.cpp @@ -1,4 +1,5 @@ -// RUN: %clang_cc1 -Wno-unused-value -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s +// RUN: %clang_cc1 -Wno-unused-value -triple %itanium_abi_triple -emit-llvm %s -std=c++98 -o - | FileCheck %s +// RUN: %clang_cc1 -Wno-unused-value -triple %itanium_abi_triple -emit-llvm %s -std=c++11 -o - | FileCheck -check-prefix=CHECK -check-prefix=CHECK11 %s // CHECK: @i = global [[INT:i[0-9]+]] 0 volatile int i, j, k; @@ -22,18 +23,22 @@ void test() { asm("nop"); // CHECK: call void asm - // should not load + // should not load in C++98 i; + // CHECK11-NEXT: load volatile [[INT]], [[INT]]* @i (float)(ci); // CHECK-NEXT: load volatile [[INT]], [[INT]]* getelementptr inbounds ([[CINT]], [[CINT]]* @ci, i32 0, i32 0) // CHECK-NEXT: load volatile [[INT]], [[INT]]* getelementptr inbounds ([[CINT]], [[CINT]]* @ci, i32 0, i32 1) // CHECK-NEXT: sitofp [[INT]] - // These are not uses in C++: + // These are not uses in C++98: // [expr.static.cast]p6: // The lvalue-to-rvalue . . . conversions are not applied to the expression. (void)ci; + // CHECK11-NEXT: load volatile [[INT]], [[INT]]* getelementptr inbounds ([[CINT]], [[CINT]]* @ci, i32 0, i32 0) + // CHECK11-NEXT: load volatile [[INT]], [[INT]]* getelementptr inbounds ([[CINT]], [[CINT]]* @ci, i32 0, i32 1) + (void)a; (void)(ci=ci); @@ -126,7 +131,8 @@ void test() { // CHECK-NEXT: load volatile // CHECK-NEXT: sitofp - (void)i; + (void)i; // This is now a load in C++11 + // CHECK11-NEXT: load volatile i=i; // CHECK-NEXT: load volatile @@ -155,13 +161,15 @@ void test() { // CHECK-NEXT: br label // CHECK: phi - (void)(i,(i=i)); + (void)(i,(i=i)); // first i is also a load in C++11 + // CHECK11-NEXT: load volatile // CHECK-NEXT: load volatile // CHECK-NEXT: store volatile - i=i,k; + i=i,k; // k is also a load in C++11 // CHECK-NEXT: load volatile [[INT]], [[INT]]* @i // CHECK-NEXT: store volatile {{.*}}, [[INT]]* @i + // CHECK11-NEXT: load volatile [[INT]], [[INT]]* @k (i=j,k=j); // CHECK-NEXT: load volatile [[INT]], [[INT]]* @j @@ -169,11 +177,14 @@ void test() { // CHECK-NEXT: load volatile [[INT]], [[INT]]* @j // CHECK-NEXT: store volatile {{.*}}, [[INT]]* @k - (i=j,k); + (i=j,k); // k is also a load in C++11 // CHECK-NEXT: load volatile [[INT]], [[INT]]* @j // CHECK-NEXT: store volatile {{.*}}, [[INT]]* @i + // CHECK11-NEXT: load volatile [[INT]], [[INT]]* @k - (i,j); + (i,j); // i and j both are loads in C++11 + // CHECK11-NEXT: load volatile [[INT]], [[INT]]* @i + // CHECK11-NEXT: load volatile [[INT]], [[INT]]* @j // Extra load in C++. i=c=k; @@ -190,7 +201,9 @@ void test() { // CHECK-NEXT: add nsw [[INT]] // CHECK-NEXT: store volatile - ci; + ci; // ci is a load in C++11 + // CHECK11-NEXT: load volatile {{.*}} @ci, i32 0, i32 0 + // CHECK11-NEXT: load volatile {{.*}} @ci, i32 0, i32 1 asm("nop"); // CHECK-NEXT: call void asm @@ -338,8 +351,9 @@ void test() { // CHECK-NEXT: load volatile // CHECK-NEXT: add - (i,j)=k; + (i,j)=k; // i is also a load in C++11 // CHECK-NEXT: load volatile [[INT]], [[INT]]* @k + // CHECK11-NEXT: load volatile [[INT]], [[INT]]* @i // CHECK-NEXT: store volatile {{.*}}, [[INT]]* @j (j=k,i)=i; diff --git a/test/CodeGenCXX/volatile.cpp b/test/CodeGenCXX/volatile.cpp index ea7429f291..9c0271b21d 100644 --- a/test/CodeGenCXX/volatile.cpp +++ b/test/CodeGenCXX/volatile.cpp @@ -1,4 +1,5 @@ -// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -std=c++98 -o - | FileCheck %s +// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -std=c++11 -o - | FileCheck -check-prefix=CHECK -check-prefix=CHECK11 %s // Check that IR gen doesn't try to do an lvalue-to-rvalue conversion // on a volatile reference result. rdar://problem/8338198 @@ -27,6 +28,7 @@ namespace test1 { // CHECK-LABEL: define void @_ZN5test14testEv() void test() { // CHECK: [[TMP:%.*]] = load i32*, i32** @_ZN5test11xE, align 8 + // CHECK11-NEXT: {{%.*}} = load volatile i32, i32* [[TMP]], align 4 // CHECK-NEXT: ret void *x; } diff --git a/test/PCH/macro-undef.cpp b/test/PCH/macro-undef.cpp index c0ce2de23f..bfe87d12b2 100644 --- a/test/PCH/macro-undef.cpp +++ b/test/PCH/macro-undef.cpp @@ -1,6 +1,6 @@ -// RUN: %clang_cc1 -emit-pch -o %t %s -// RUN: %clang_cc1 -fsyntax-only -include-pch %t %s -Wuninitialized -verify -// RUN: %clang_cc1 -fsyntax-only -include-pch %t %s -Wuninitialized -fdiagnostics-parseable-fixits 2>&1 | FileCheck %s +// RUN: %clang_cc1 -std=c++98 -emit-pch -o %t %s +// RUN: %clang_cc1 -std=c++98 -fsyntax-only -include-pch %t %s -Wuninitialized -verify +// RUN: %clang_cc1 -std=c++98 -fsyntax-only -include-pch %t %s -Wuninitialized -fdiagnostics-parseable-fixits 2>&1 | FileCheck %s #ifndef HEADER #define HEADER -- 2.40.0