[all-commits] [llvm/llvm-project] a633da: [FPEnv] Partially implement #pragma STDC FENV_ROUND
Serge Pavlov via All-commits
all-commits at lists.llvm.org
Fri Sep 4 02:48:19 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: a633da5391b0e42c0185132e8b532ae9bc34489f
https://github.com/llvm/llvm-project/commit/a633da5391b0e42c0185132e8b532ae9bc34489f
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2020-09-04 (Fri, 04 Sep 2020)
Changed paths:
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/TokenKinds.def
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/Sema.h
M clang/lib/Parse/ParsePragma.cpp
M clang/lib/Parse/ParseStmt.cpp
M clang/lib/Parse/Parser.cpp
M clang/lib/Sema/SemaAttr.cpp
M clang/test/AST/ast-dump-fpfeatures.cpp
A clang/test/Parser/pragma-fenv_round.c
Log Message:
-----------
[FPEnv] Partially implement #pragma STDC FENV_ROUND
This change implements pragma STDC FENV_ROUND, which is introduced by
the extension to standard (TS 18661-1). The pragma is implemented only
in frontend, it sets apprpriate state of FPOptions stored in Sema. Use
of these bits in constant evaluation adn/or code generator is not in the
scope of this change.
Parser issues warning on unsuppored pragma when it encounteres pragma
STDC FENV_ROUND, however it makes syntax checks and updates Sema state
as if the pragma were supported.
Primary purpose of the partial implementation is to facilitate
development of non-default floating poin environment. Previously a
developer cannot set non-default rounding mode in sources, this mades
preparing tests for say constant evaluation substantially complicated.
Differential Revision: https://reviews.llvm.org/D86921
More information about the All-commits
mailing list