| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 145211
|
| |
|
|
| |
llvm-svn: 145209
|
| |
|
|
|
|
|
|
|
|
|
| |
generic pushDestroy function.
This would reduce the number of useful declarations in
CGTemporaries.cpp to one. Since CodeGenFunction::EmitCXXTemporary
does not deserve its own file, move it to CGCleanup.cpp and delete
CGTemporaries.cpp.
llvm-svn: 145202
|
| |
|
|
| |
llvm-svn: 145189
|
| |
|
|
|
|
| |
This supports single-element initializer lists for references according to DR1288, as well as creating temporaries and binding to them for other initializer lists.
llvm-svn: 145186
|
| |
|
|
|
|
| |
appear in non-constant initializers in C++.
llvm-svn: 145087
|
| |
|
|
|
|
| |
LangOpts.AddressSanitizer instead of CodeGenOpts.AddressSanitizer
llvm-svn: 145054
|
| |
|
|
| |
llvm-svn: 145040
|
| |
|
|
|
|
| |
Fixes PR4777.
llvm-svn: 145015
|
| |
|
|
| |
llvm-svn: 144972
|
| |
|
|
|
|
| |
Use isEmptyRecord for arguments on x86-32; there are structs of size 0 which don't count as empty.
llvm-svn: 144971
|
| |
|
|
|
|
| |
Fixes <rdar://problem/10463281>.
llvm-svn: 144966
|
| |
|
|
|
|
| |
structures containing an SSE vector.
llvm-svn: 144963
|
| |
|
|
|
|
| |
struct layout tests.
llvm-svn: 144961
|
| |
|
|
|
|
| |
type for a function returning a struct containing only a pointer. Handle the edge case of a struct containing only a float or double plus some dead padding instead of asserting.
llvm-svn: 144960
|
| |
|
|
|
|
| |
tests.
llvm-svn: 144944
|
| |
|
|
|
|
| |
parsing or false to abort parsing.
llvm-svn: 144943
|
| |
|
|
|
|
| |
Fixes rdar://10433202
llvm-svn: 144938
|
| |
|
|
|
|
| |
and base-to-derived casts, and add proper handling of temporaries.
llvm-svn: 144926
|
| |
|
|
| |
llvm-svn: 144800
|
| |
|
|
| |
llvm-svn: 144789
|
| |
|
|
|
|
| |
lvalues. PR11376.
llvm-svn: 144745
|
| |
|
|
| |
llvm-svn: 144612
|
| |
|
|
| |
llvm-svn: 144548
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
loads to later be moved/combined in the optimizer. Fixes <rdar://problem/6027699>
llvm-svn: 144318
|
| |
|
|
|
|
| |
Johannes Obermayr.
llvm-svn: 144310
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
"TypedefContext". No functionality change.
llvm-svn: 144248
|
| |
|
|
| |
llvm-svn: 144210
|
| |
|
|
| |
llvm-svn: 144168
|
| |
|
|
|
|
|
| |
the other helper functions, since we already differentiated the cases it was
testing between. No functionality change.
llvm-svn: 144167
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
block-typed __block variables using objc_retainBlock
and objc_dispose. Previously we were using
_Block_object_assign and _Block_object_destroy
with BLOCK_BYREF_CALLER, which causes the runtime
to completely ignore the retain and release.
In most cases this doesn't cause catastrophe
because the retain/release are balanced and
because the block in the variable was copied
upon assignment there. However, the stack
copy of the variable will be released when
it goes out of scope, which is a problem if
that value was released due to an assignment
to the heap copy. Similarly, a leak can occur
if the variable is assigned after the copy to
the heap.
llvm-svn: 144162
|
| |
|
|
|
|
| |
opaque values. Silly C type system.
llvm-svn: 144144
|
| |
|
|
|
|
| |
Based on work by Dmitry Sokolov!
llvm-svn: 144072
|
| |
|
|
| |
llvm-svn: 144065
|
| |
|
|
|
|
|
|
|
| |
This patch just adds a simple NeonTypeFlags class to replace the various
hardcoded constants that had been used until now. Unfortunately I couldn't
figure out a good way to avoid duplicating that class between clang and
TableGen, but since it's small and rarely changes, that's not so bad.
llvm-svn: 144054
|
| |
|
|
| |
llvm-svn: 143922
|
| |
|
|
| |
llvm-svn: 143910
|
| |
|
|
| |
llvm-svn: 143908
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
property references to use a new PseudoObjectExpr
expression which pairs a syntactic form of the expression
with a set of semantic expressions implementing it.
This should significantly reduce the complexity required
elsewhere in the compiler to deal with these kinds of
expressions (e.g. IR generation's special l-value kind,
the static analyzer's Message abstraction), at the lower
cost of specifically dealing with the odd AST structure
of these expressions. It should also greatly simplify
efforts to implement similar language features in the
future, most notably Managed C++'s properties and indexed
properties.
Most of the effort here is in dealing with the various
clients of the AST. I've gone ahead and simplified the
ObjC rewriter's use of properties; other clients, like
IR-gen and the static analyzer, have all the old
complexity *and* all the new complexity, at least
temporarily. Many thanks to Ted for writing and advising
on the necessary changes to the static analyzer.
I've xfailed a small diagnostics regression in the static
analyzer at Ted's request.
llvm-svn: 143867
|
| |
|
|
| |
llvm-svn: 143666
|
| |
|
|
| |
llvm-svn: 143658
|
| |
|
|
|
|
| |
AST thinks it should be. Per report on cfe-dev.
llvm-svn: 143645
|
| |
|
|
|
|
| |
and destructors in the DefaultABIInfo.
llvm-svn: 143601
|
| |
|
|
| |
llvm-svn: 143597
|
| |
|
|
|
|
| |
fields in order to ease handling of such structures in backend.
llvm-svn: 143596
|