llvm-project/clang/lib
Sean Dooher 35c9baa11e [attributes] Add a facility for enforcing a Trusted Computing Base.
Introduce a function attribute 'enforce_tcb' that prevents the function
from calling other functions without the same attribute. This allows
isolating code that's considered to be somehow privileged so that it could not
use its privileges to exhibit arbitrary behavior.

Introduce an on-by-default warning '-Wtcb-enforcement' that warns
about violations of the above rule.

Introduce a function attribute 'enforce_tcb_leaf' that suppresses
the new warning within the function it is attached to. Such leaf functions
may implement common functionality between the trusted and the untrusted code
but they require extra careful audit with respect to their capabilities.

Fixes after a revert in 419ef38a50293c58078f830517f5e305068dbee6:
Fix a test.
Add workaround for GCC bug (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67274).
Attribute the patch appropriately!

Differential Revision: https://reviews.llvm.org/D91898
2021-01-11 10:20:51 -08:00
..
APINotes APINotes: annotate dump methods (NFC) 2021-01-08 20:49:28 +00:00
ARCMigrate ARCMigrate: Migrate ObjCMT.cpp over to FileEntryRef 2020-12-09 14:16:05 -08:00
AST [clangd] Fix type printing in the presence of qualifiers 2021-01-08 17:00:39 +01:00
ASTMatchers [ASTMatchers] Fix child traversal over range-for loops 2021-01-05 21:29:37 +00:00
Analysis Revert "Revert "Revert "Revert "Revert "[analyzer] NFC: Move path diagnostic consumer implementations to libAnalysis.""""" 2021-01-08 14:17:18 +01:00
Basic [AArch64] Add +flagm archictecture option, allowing the v8.4a flag modification extension. 2021-01-08 13:21:12 +00:00
CodeGen [clang][AArch64][SVE] Avoid going through memory for coerced VLST return values 2021-01-11 12:10:59 +00:00
CrossTU Revert "Revert "Revert "Revert "Revert "[analyzer] NFC: Move path diagnostic consumer implementations to libAnalysis.""""" 2021-01-08 14:17:18 +01:00
DirectoryWatcher Revert "ADT: Migrate users of AlignedCharArrayUnion to std::aligned_union_t, NFC" 2020-12-14 17:04:06 -08:00
Driver Add -f[no-]direct-access-external-data to supersede -mpie-copy-relocations 2021-01-09 00:32:01 -08:00
Edit [clang] Use SourceLocation as key in hash maps, NFCI 2020-10-20 16:24:09 +01:00
Format [clang-format] Find main include after block ended with #pragma hdrstop 2021-01-11 09:49:34 +01:00
Frontend Reapply "[clang][cli] Port DiagnosticOpts to new option parsing system" 2021-01-11 10:05:53 +01:00
FrontendTool [NFC] Refactor Registry loops to range for 2020-06-19 00:40:10 +01:00
Headers [PowerPC] Add variants of 64-bit vector types for vec_sel. 2021-01-11 03:52:16 +00:00
Index Revert "[c++20] P1907R1: Support for generalized non-type template arguments of scalar type." 2020-12-22 10:18:08 -08:00
IndexSerialization [index-while-building] Fix build with -DBUILD_SHARED_LIBS=True 2020-08-20 15:12:56 +01:00
Lex Revert "Lex: Migrate HeaderSearch::LoadedModuleMaps to FileEntryRef" 2020-12-14 22:05:08 -05:00
Parse [SVE] Add support to vectorize_width loop pragma for scalable vectors 2021-01-08 11:37:27 +00:00
Rewrite SourceManager: Clarify that FileInfo always has a ContentCache, NFC 2020-10-23 12:38:53 -04:00
Sema [attributes] Add a facility for enforcing a Trusted Computing Base. 2021-01-11 10:20:51 -08:00
Serialization [NFC] Renaming PackStack to AlignPackStack 2021-01-08 09:15:11 -05:00
StaticAnalyzer Revert "Revert "Revert "Revert "Revert "[analyzer] NFC: Move path diagnostic consumer implementations to libAnalysis.""""" 2021-01-08 14:17:18 +01:00
Testing Fix MSVC "not all control paths return a value" warning. NFC. 2020-06-05 10:45:59 +01:00
Tooling [CompilationDatabase] Pass Twine by const reference instead of by value. NFCI. 2021-01-07 12:53:28 +00:00
CMakeLists.txt APINotes: add APINotesYAMLCompiler 2020-11-05 18:55:13 +00:00