commit | 318a6eae06dd9fe031d3ebed0870460e3b911b02 | [log] [tgz] |
---|---|---|
author | Oren Ben Simhon <oren.ben.simhon@intel.com> | Thu Apr 27 12:01:00 2017 +0000 |
committer | Oren Ben Simhon <oren.ben.simhon@intel.com> | Thu Apr 27 12:01:00 2017 +0000 |
tree | 20bbb483a66384595167c995561545898ed53856 | |
parent | f57453aece3e1dc56ce00a29ec6612d33e521c88 [diff] [blame] |
[X86] Support of no_caller_saved_registers attribute Implements the Clang part for no_caller_saved_registers attribute as appears here: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=5ed3cc7b66af4758f7849ed6f65f4365be8223be. Differential Revision: https://reviews.llvm.org/D31871 llvm-svn: 301535
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index 4626052..3b526a2 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp
@@ -7918,6 +7918,8 @@ if (lbaseInfo.getProducesResult() != rbaseInfo.getProducesResult()) return QualType(); + if (lbaseInfo.getNoCallerSavedRegs() != rbaseInfo.getNoCallerSavedRegs()) + return QualType(); // FIXME: some uses, e.g. conditional exprs, really want this to be 'both'. bool NoReturn = lbaseInfo.getNoReturn() || rbaseInfo.getNoReturn();