Summary:
Previously, Clang only emitted label names in assert builds.
However there is a CC1 option -discard-value-names that should have been used to control emission instead.
This patch removes the NDEBUG preprocessor block and instead allows LLVM to handle removing the names in accordance with the option.
Reviewers: erichkeane, aaron.ballman, majnemer
Reviewed By: aaron.ballman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D42829
llvm-svn: 324127
30 lines
815 B
C++
30 lines
815 B
C++
// RUN: %clang_cc1 -emit-llvm -triple=armv7-apple-darwin -std=c++11 %s -o - -O1 \
|
|
// RUN: | FileCheck %s
|
|
// RUN: %clang_cc1 -emit-llvm -triple=armv7-apple-darwin -std=c++11 %s -o - -O1 \
|
|
// RUN: -discard-value-names | FileCheck %s --check-prefix=DISCARDVALUE
|
|
|
|
extern "C" void branch();
|
|
|
|
bool test(bool pred) {
|
|
// DISCARDVALUE: br i1 %0, label %2, label %3
|
|
// CHECK: br i1 %pred, label %if.then, label %if.end
|
|
|
|
if (pred) {
|
|
// DISCARDVALUE: ; <label>:2:
|
|
// DISCARDVALUE-NEXT: tail call void @branch()
|
|
// DISCARDVALUE-NEXT: br label %3
|
|
|
|
// CHECK: if.then:
|
|
// CHECK-NEXT: tail call void @branch()
|
|
// CHECK-NEXT: br label %if.end
|
|
branch();
|
|
}
|
|
|
|
// DISCARDVALUE: ; <label>:3:
|
|
// DISCARDVALUE-NEXT: ret i1 %0
|
|
|
|
// CHECK: if.end:
|
|
// CHECK-NEXT: ret i1 %pred
|
|
return pred;
|
|
}
|