aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Analysis/ThreadSafetyCommon.cpp
AgeCommit message (Collapse)AuthorFilesLines
2016-12-03DR616, and part of P0135R1: member access (or pointer-to-member access) on aRichard Smith1-0/+3
temporary produces an xvalue, not a prvalue. Support this by materializing the temporary prior to performing the member access. llvm-svn: 288563
2016-07-18[NFC] Header cleanupMehdi Amini1-6/+0
Summary: Removed unused headers, replaced some headers with forward class declarations Patch by: Eugene <claprix@yandex.ru> Differential Revision: https://reviews.llvm.org/D20100 llvm-svn: 275882
2015-10-27[coroutines] Creation of promise object, lookup of operator co_await, buildingRichard Smith1-0/+1
of await_* calls, and AST representation for same. llvm-svn: 251387
2015-10-06Fix Clang-tidy modernize-use-nullptr warnings in source directories; other ↵Hans Wennborg1-44/+3
minor cleanups Patch by Eugene Zelenko! Differential Revision: http://reviews.llvm.org/D13406 llvm-svn: 249484
2015-09-29Thread Safety Analysis: fix before/after checks so that they work on globalDeLesley Hutchins1-1/+1
variables as well member variables. llvm-svn: 248803
2015-08-12[modules] Fix thread safety analysis to cope with merging of FieldDecls ↵Richard Smith1-1/+2
across modules. llvm-svn: 244714
2015-03-09Hide away implementation details of the ThreadSafetyAnalysis in anonymous ↵Benjamin Kramer1-27/+11
namespaces NFC. llvm-svn: 231653
2015-01-14[cleanup] Re-sort *all* #include lines with llvm/utils/sort_includes.pyChandler Carruth1-1/+0
Sorry for the noise, I managed to miss a bunch of recent regressions of include orderings here. This should actually sort all the includes for Clang. Again, no functionality changed, this is just a mechanical cleanup that I try to run periodically to keep the #include lines as regular as possible across the project. llvm-svn: 225979
2014-09-10Thread Safety Analysis: major update to thread safety TIL.DeLesley Hutchins1-35/+30
Numerous changes, including: * Changed the way variables and instructions are handled in basic blocks to be more efficient. * Eliminated SExprRef. * Simplified futures. * Fixed documentation. * Compute dominator and post dominator trees. llvm-svn: 217556
2014-08-04Thread safety analysis: Add support for negative requirements, which areDeLesley Hutchins1-12/+35
capability expressions of the form !expr, and denote a capability that must not be held. llvm-svn: 214725
2014-07-28Thread Safety Analysis: Replace the old and broken SExpr with the newDeLesley Hutchins1-33/+215
til::SExpr. This is a large patch, with many small changes to pretty printing and expression lowering to make the new SExpr representation equivalent in functionality to the old. llvm-svn: 214089
2014-05-29Thread Safety Analysis: implement review suggestions from Aaron Ballman.DeLesley Hutchins1-1/+1
llvm-svn: 209847
2014-05-28Thread Safety Analysis: update TIL traversal mechanism to allow arbitraryDeLesley Hutchins1-7/+10
local contexts. Also includes some minor refactoring. llvm-svn: 209774
2014-05-15Thread Safety Analysis: add new node types to thread safety TIL.DeLesley Hutchins1-97/+78
This fills in a few missing gaps in functionality. llvm-svn: 208830
2014-05-09ThreadSafetyAnalysis: Don't crash when trying to analyze objc methods.Benjamin Kramer1-4/+6
The thread safety analysis isn't very useful in ObjC (you can't annotate ObjC classes or methods) but we can still analyze the actual code and show violations in usage of C/C++ functions. Fixes PR19541, which does not use thread safety attributes but crashes with -Weverything. llvm-svn: 208436
2014-04-23Replacing a naked pointer with a unique_ptr. No functional changes intended.Aaron Ballman1-3/+3
llvm-svn: 206986
2014-04-23Updated to be a bit more const friendly. Also switched the linkage to be ↵Aaron Ballman1-3/+3
static since this function is file-local. No functional changes intended. llvm-svn: 206982
2014-04-22Thread safety analysis: add array operations to SExpr.DeLesley Hutchins1-1/+4
llvm-svn: 206907
2014-04-22Thread safety analysis: fix warning.DeLesley Hutchins1-2/+1
llvm-svn: 206899
2014-04-21Thread safety analysis: misc updates to SExpr handling. Fix to minimal SSA,DeLesley Hutchins1-39/+85
function parameters, and compound assignment. llvm-svn: 206827
2014-04-19Thread Safety Analysis: Convert to minimal SSA.DeLesley Hutchins1-17/+72
llvm-svn: 206681
2014-04-19Thread Safety Analysis: Update SSA pass to handle loops.DeLesley Hutchins1-85/+169
llvm-svn: 206676
2014-04-17Since the object is new'ed in the enterCFG function, now deleting in the ↵Aaron Ballman1-0/+1
exitCFG function instead of the destructor to ensure proper pairing. This allows reuse of the builder without creating a memory leak. llvm-svn: 206471
2014-04-15Thread Safety Analysis: rewrite SSA pass to use the new SExpr and CFGDeLesley Hutchins1-89/+296
traversal system. The new pass is still undergoing testing; no change in functionality. llvm-svn: 206338
2014-04-09Thread Safety Analysis: reorganized SExpr header files. No change inDeLesley Hutchins1-0/+8
functionality. llvm-svn: 205936
2014-04-09Thread Safety Analysis: now with less includes. No functional changes.Aaron Ballman1-1/+1
llvm-svn: 205929
2014-04-09Thread Safety Analysis: some minor cleanups to the latest thread safety ↵Aaron Ballman1-44/+34
changes. No functional changes intended. * Adds an iterator_range interface to CallExpr to get the arguments * Modifies SExpr such that it must be allocated in the Arena, and cannot be deleted * Minor const-correctness and nullptr updates * Adds some operator!= implementations to complement operator== * Removes unused functionality llvm-svn: 205915
2014-04-08Thread Safety Analysis. Misc fixes to SExpr code, responding to code reviewDeLesley Hutchins1-8/+2
by Aaron Ballman. llvm-svn: 205809
2014-04-07Thread Safety Analysis: various fixes to new SExpr code.DeLesley Hutchins1-20/+34
Implemented ownership policy, updated to use nullptr, const-cleanup. llvm-svn: 205745
2014-04-07Thread Safety Analysis: update to internal SExpr handling.DeLesley Hutchins1-0/+407
This patch is the first part of a significant refactoring that seeks to restore sanity to way thread safety analysis deals with capability expressions. The current patch merely provides an outline of the structure of the new system. It's not yet connected to the actual analysis, so there's no change in functionality. llvm-svn: 205728