2024-05-04 23:08:11 -07:00
|
|
|
// RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++11 -fcxx-exceptions -fdelayed-template-parsing -ast-dump %s \
|
2024-04-23 14:14:02 +07:00
|
|
|
// RUN: | FileCheck %s
|
|
|
|
|
|
|
|
#pragma STDC FENV_ROUND FE_DOWNWARD
|
|
|
|
#pragma float_control(precise, off)
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
__attribute__((optnone)) T func_22(T x, T y) {
|
|
|
|
return x + y;
|
|
|
|
}
|
|
|
|
|
|
|
|
// CHECK-LABEL: FunctionTemplateDecl {{.*}} func_22
|
|
|
|
// CHECK: FunctionDecl {{.*}} func_22 'T (T, T)'
|
2024-05-06 14:30:54 +07:00
|
|
|
// CHECK: CompoundStmt {{.*}} FPContractMode=1 ConstRoundingMode=downward MathErrno=1
|
2024-04-23 14:14:02 +07:00
|
|
|
// CHECK: ReturnStmt
|
2024-05-06 14:30:54 +07:00
|
|
|
// CHECK: BinaryOperator {{.*}} '+' FPContractMode=1 ConstRoundingMode=downward MathErrno=1
|
2024-04-23 14:14:02 +07:00
|
|
|
// CHECK: FunctionDecl {{.*}} func_22 'float (float, float)'
|
2024-05-06 14:30:54 +07:00
|
|
|
// CHECK: CompoundStmt {{.*}} FPContractMode=1 ConstRoundingMode=downward MathErrno=1
|
2024-04-23 14:14:02 +07:00
|
|
|
// CHECK: ReturnStmt
|
2024-05-06 14:30:54 +07:00
|
|
|
// CHECK: BinaryOperator {{.*}} 'float' '+' FPContractMode=1 ConstRoundingMode=downward MathErrno=1
|
2024-04-23 14:14:02 +07:00
|
|
|
|
|
|
|
float func_23(float x, float y) {
|
|
|
|
return func_22(x, y);
|
|
|
|
}
|