|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| 
| | HeaderFileInfos
from the primary PCH is deserialized, otherwise we lose info that headers were
already #imported/#included.
llvm-svn: 144510 | 
| | 
| 
| 
| | llvm-svn: 144508 | 
| | 
| 
| 
| | llvm-svn: 144505 | 
| | 
| 
| 
| | llvm-svn: 144500 | 
| | 
| 
| 
| 
| 
| | literals of array type, materialise a temporary.
llvm-svn: 144483 | 
| | 
| 
| 
| 
| 
| 
| 
| | or MemberExpr which refers to it. As a side-effect, MemberExprs which refer to
static member functions and static data members are now emitted as constant
expressions.
llvm-svn: 144468 | 
| | 
| 
| 
| 
| 
| 
| 
| | [is/set]ChangedSinceDeserialization
and remove them.
llvm-svn: 144466 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | of its categories because
it is going to be rewritten (and the chain will be serialized again), otherwise we may form a cycle in its
categories list when deserializing.
Also introduce ASTMutationListener::CompletedObjCForwardRef to notify that a forward reference
was completed; using Decl's isChangedSinceDeserialization/setChangedSinceDeserialization
is bug inducing and kinda gross, we should phase it out.
Fixes infinite loop in rdar://10418538.
llvm-svn: 144465 | 
| | 
| 
| 
| | llvm-svn: 144464 | 
| | 
| 
| 
| | llvm-svn: 144455 | 
| | 
| 
| 
| 
| 
| 
| 
| | module import: don't re-check for a loaded module unless we've
actually loaded a new module map file. Already-loaded module map files
aren't interesting.
llvm-svn: 144435 | 
| | 
| 
| 
| 
| 
| 
| 
| | the module is described in one of the module maps in a search path or
in a subdirectory off the search path that has the same name as the
module we're looking for.
llvm-svn: 144433 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | map, so long as they have an umbrella header. This makes it possible
to introduce a module map + umbrella header for a given set of
headers, to turn it into a module.
There are two major deficiencies here: first, we don't go hunting for
module map files when we just see a module import (so we won't know
about the modules described therein). Second, we don't yet have a way
to build modules that don't have umbrella headers, or have incomplete
umbrella headers.
llvm-svn: 144424 | 
| | 
| 
| 
| 
| 
| 
| | the corresponding (top-level) modules. This isn't actually useful yet,
because we don't yet have a way to build modules out of module maps.
llvm-svn: 144410 | 
| | 
| 
| 
| 
| 
| | declarations to actual files.
llvm-svn: 144408 | 
| | 
| 
| 
| 
| 
| | convention of SPECIAL_TYPE*.
llvm-svn: 144403 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Module map files provide a way to map between headers and modules, so
that we can layer a module system on top of existing headers without
changing those headers at all.
This commit introduces the module map file parser and the module map
that it generates, and wires up the module map file parser so that
we'll automatically find module map files as part of header
search. Note that we don't yet use the information stored in the
module map.
llvm-svn: 144402 | 
| | 
| 
| 
| 
| 
| 
| 
| | superclass information is imported before validating
it.  This fixes spurious "incompatible superclasses"
errors in LLDB.
llvm-svn: 144393 | 
| | 
| 
| 
| | llvm-svn: 144382 | 
| | 
| 
| 
| | llvm-svn: 144381 | 
| | 
| 
| 
| 
| 
| | please the buildbots.
llvm-svn: 144375 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | reinstates r144273; a combination of r144333's fix for NoOp rvalue-to-lvalue
casts and some corresponding changes here resolve the regression which that
caused.
This patch also adds support for some additional forms of member function call,
along with additional testing.
llvm-svn: 144369 | 
| | 
| 
| 
| 
| 
| | guarantees alignment up to the ABI alignment of the return type.
llvm-svn: 144364 | 
| | 
| 
| 
| 
| 
| 
| | enclosing full-expressions.  It is somewhat amazing that 
this hasn't come up as a problem before.
llvm-svn: 144362 | 
| | 
| 
| 
| 
| 
| | Atanasyan.
llvm-svn: 144358 | 
| | 
| 
| 
| 
| 
| | qualifier. PR11354.  (operator bool() is evil!)
llvm-svn: 144355 | 
| | 
| 
| 
| 
| 
| | diagnostics in the future. Make it so.
llvm-svn: 144347 | 
| | 
| 
| 
| 
| 
| | specific behavior from -fms-extensions to -fms-compatibility.
llvm-svn: 144341 | 
| | 
| 
| 
| 
| 
| | of seeing if the predecessor node was a non-StmtPoint, check if it is specifically a BlockEntrance node.
llvm-svn: 144340 | 
| | 
| 
| 
| 
| 
| | diagnostics to a file.
llvm-svn: 144339 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | them when performing a const conversion on the implicit object argument for a
member operator call on an rvalue.
No change to the testsuite: the test for this change is that the added
assertion does not fire any more.
llvm-svn: 144333 | 
| | 
| 
| 
| 
| 
| | stmts, entering a basic block, or analyzing non-consumed expressions.  This sigificantly speeds up analysis time, and reduces analysis time down to 27% less than before we linearized the CFG.
llvm-svn: 144332 | 
| | 
| 
| 
| 
| 
| | loads to later be moved/combined in the optimizer.  Fixes <rdar://problem/6027699>
llvm-svn: 144318 | 
| | 
| 
| 
| 
| 
| | Johannes Obermayr.
llvm-svn: 144310 | 
| | 
| 
| 
| | llvm-svn: 144296 | 
| | 
| 
| 
| | llvm-svn: 144277 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | need to provide a 'dominating IP' which is guaranteed to
dominate the (de)activation point but which cannot be avoided
along any execution path from the (de)activation point to
the push-point of the cleanup.  Using the entry block is
bad mojo.
llvm-svn: 144276 | 
| | 
| 
| 
| | llvm-svn: 144273 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | a previously-inactive cleanup, not only do we need a
flag variable, but we should also force the cleanup to
query the flag variable.  However, we only need to do
this when we're activating in a context that's
conditionally executed;  otherwise, we may safely
assume that the cleanup is dominated by the activation
point.
llvm-svn: 144271 | 
| | 
| 
| 
| 
| 
| | defaulted or deleted.
llvm-svn: 144270 | 
| | 
| 
| 
| 
| 
| 
| 
| | via the libclang API.
I've tested it on simple cases and it works.  Test cases to follow as well as a few tweaks.
llvm-svn: 144269 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | full-expression.  Naturally they're inactive before we enter
the block literal expression.  This restores the intended
behavior that blocks belong to their enclosing scope.
There's a useful -O0 / compile-time optimization that we're
missing here with activating cleanups following straight-line
code from their inactive beginnings.
llvm-svn: 144268 | 
| | 
| 
| 
| 
| 
| 
| | literal types, as well as derived-to-base casts for lvalues and
derived-to-virtual-base casts.
llvm-svn: 144265 | 
| | 
| 
| 
| | llvm-svn: 144264 | 
| | 
| 
| 
| 
| 
| 
| | but it is sometimes useful to track blocks.  Do so.  Also
optimize the storage of these expressions.
llvm-svn: 144263 | 
| | 
| 
| 
| 
| 
| 
| | is currently too inefficient to allow us to use it for array initializers, but
fortunately we usually don't yet need to evaluate such initializers.
llvm-svn: 144260 | 
| | 
| 
| 
| 
| 
| | "TypedefContext". No functionality change.
llvm-svn: 144248 | 
| | 
| 
| 
| 
| 
| 
| 
| | *mmintrin.h to take them into account.
<rdar://problem/10341145>
llvm-svn: 144246 | 
| | 
| 
| 
| | llvm-svn: 144210 | 
| | 
| 
| 
| 
| 
| | in fast enumeration rewrite. // rdar://10415026
llvm-svn: 144191 |