| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 163983
|
| |
|
|
|
|
|
|
|
| |
the trap BB out of the individual checks and into a common function, to prepare
for making this code call into a runtime library. Rename the existing EmitCheck
to EmitTypeCheck to clarify it and to move it out of the way of the new
EmitCheck.
llvm-svn: 163451
|
| |
|
|
| |
llvm-svn: 162796
|
| |
|
|
|
|
|
|
| |
AsmStmts. This function is only used by GCCAsmStmts, however. Constraints need
to be properly computed before MSAsmStmts can use EmitAsmStmt. No functional
change intended.
llvm-svn: 162776
|
| |
|
|
|
|
| |
No functional change intended.
llvm-svn: 162632
|
| |
|
|
|
|
|
|
| |
* when checking that a pointer or reference refers to appropriate storage for a type, also check the alignment and perform a null check
* check that references are bound to appropriate storage
* check that 'this' has appropriate storage in member accesses and member function calls
llvm-svn: 162523
|
| |
|
|
|
|
| |
ms-style inline asms.
llvm-svn: 162463
|
| |
|
|
| |
llvm-svn: 162452
|
| |
|
|
|
|
|
| |
of a pointer for builtin emission, instead of just depending on the type of the
pointee. <rdar://problem/11314941>.
llvm-svn: 162425
|
| |
|
|
|
|
| |
member of reference type in an anonymous struct. PR13154.
llvm-svn: 161473
|
| |
|
|
|
|
| |
APSInt::isSameValue() when comparing different sized APSInt's.
llvm-svn: 160641
|
| |
|
|
| |
llvm-svn: 160353
|
| |
|
|
|
|
|
| |
This function has two versions. The first one is used for a register operand.
The second one is used for an immediate number.
llvm-svn: 160308
|
| |
|
|
| |
llvm-svn: 160049
|
| |
|
|
|
|
|
|
|
|
| |
there's something going on there. Remove the unconditional line entry
and only add one if we're emitting cleanups (any other statements
would be handled normally).
Fixes rdar://9199234
llvm-svn: 160033
|
| |
|
|
| |
llvm-svn: 159965
|
| |
|
|
|
|
|
|
|
|
|
|
| |
if we want to ignore a result, the Dest will be null. Otherwise,
we must copy into it. This means we need to ensure a slot when
loading from a volatile l-value.
With all that in place, fix a bug with chained assignments into
__block variables of aggregate type where we were losing insight into
the actual source of the value during the second assignment.
llvm-svn: 159630
|
| |
|
|
|
|
|
|
| |
The tablegen'd code does the same thing without this egregious duplication.
In my limited testing everything seems to work, however there can be
differences if the clang and llvm builtin definitions don't match.
llvm-svn: 159371
|
| |
|
|
|
|
| |
This patch was reviewed in the llvm-commits list by Jim Grosbach.
llvm-svn: 159366
|
| |
|
|
| |
llvm-svn: 159295
|
| |
|
|
|
|
|
|
|
|
|
|
| |
literal helper functions. All helper functions (global
and locals) use block_invoke as their prefix. Local literal
helper names are prefixed by their enclosing mangled function
names. Blocks in non-local initializers (e.g. a global variable
or a C++11 field) are prefixed by their mangled variable name.
The descriminator number added to end of the name starts off
with blank (for first block) and _<N> (for the N+2-th block).
llvm-svn: 159206
|
| |
|
|
| |
llvm-svn: 158325
|
| |
|
|
|
|
|
|
| |
getter result type is safe but does not match with property
type resulting in spurious warning followed by crash in
IRGen. // rdar://11515196
llvm-svn: 157641
|
| |
|
|
|
|
| |
expression is treated as an lvalue.
llvm-svn: 156781
|
| |
|
|
|
|
|
|
| |
When enabled, clang generates bounds checks for array and pointers dereferences. Work to follow in LLVM's backend.
OK'ed by Chad; thanks for the review.
llvm-svn: 156431
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
and only consider using __cxa_atexit in the Itanium logic. The
default logic is to use atexit().
Emit "guarded" initializers in Microsoft mode unconditionally.
This is definitely not correct, but it's closer to correct than
just not emitting the initializer.
Based on a patch by Timur Iskhodzhanov!
llvm-svn: 155894
|
| |
|
|
| |
llvm-svn: 155082
|
| |
|
|
| |
llvm-svn: 154789
|
| |
|
|
|
|
|
|
|
| |
attached. Since we do not support any attributes which appertain to a statement
(yet), testing of this is necessarily quite minimal.
Patch by Alexander Kornienko!
llvm-svn: 154723
|
| |
|
|
|
|
|
| |
- Handle unions
- Handle C++ classes
llvm-svn: 154664
|
| |
|
|
|
|
| |
rational number, eg as 2.5 rather than 5, 2. OK'd by Peter Collingbourne.
llvm-svn: 154388
|
| |
|
|
| |
llvm-svn: 154190
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These patches cause us to miscompile and/or reject code with static
function-local variables in an extern-C context. Previously, we were
papering over this as long as the variables are within the same
translation unit, and had not seen any failures in the wild. We still
need a proper fix, which involves mangling static locals inside of an
extern-C block (as GCC already does), but this patch causes pretty
widespread regressions. Firefox, and many other applications no longer
build.
Lots of test cases have been posted to the list in response to this
commit, so there should be no problem reproducing the issues.
llvm-svn: 153768
|
| |
|
|
|
|
| |
other things which might mess with the variable's type.
llvm-svn: 153733
|
| |
|
|
|
|
| |
testers.
llvm-svn: 153660
|
| |
|
|
|
|
|
| |
a complete object, the memcpy needs to use the data size of
the structure instead of its sizeof() value. Fixes PR12204.
llvm-svn: 153613
|
| |
|
|
|
|
| |
Thanks to NAKAMURA Takumi for finding it!
llvm-svn: 153383
|
| |
|
|
|
|
|
|
|
|
| |
metadata in clang for booleans and".
For i686 targets (eg. cygwin), I saw "Range must not be empty!" in verifier.
It produces (i32)[0x80000000:0x80000000) from (uint64_t)[0xFFFFFFFF80000000ULL:0x0000000080000000ULL), for signed i32 on MDNode::Range.
llvm-svn: 153382
|
| |
|
|
|
|
| |
c++ enums.
llvm-svn: 153360
|
| |
|
|
|
|
|
|
|
|
| |
(Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris Lattner
llvm-svn: 152536
|
| |
|
|
|
|
|
|
| |
track whether the referenced declaration comes from an enclosing
local context. I'm amenable to suggestions about the exact meaning
of this bit.
llvm-svn: 152491
|
| |
|
|
|
|
|
|
| |
we correctly emit loads of BlockDeclRefExprs even when they
don't qualify as ODR-uses. I think I'm adequately convinced
that BlockDeclRefExpr can die.
llvm-svn: 152479
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
NSNumber, and boolean literals. This includes both Sema and Codegen support.
Included is also support for new Objective-C container subscripting.
My apologies for the large patch. It was very difficult to break apart.
The patch introduces changes to the driver as well to cause clang to link
in additional runtime support when needed to support the new language features.
Docs are forthcoming to document the implementation and behavior of these features.
llvm-svn: 152137
|
| |
|
|
|
|
| |
types of the pointer arguments.
llvm-svn: 151927
|
| |
|
|
|
|
|
|
| |
generated block literal for lambdas which are immediately converted to block pointer type. This simplifies the AST, avoids an unnecessary copy of the lambda and makes it much easier to avoid copying the result onto the heap.
Note that this transformation has a substantial semantic effect outside of ARC: it gives the converted lambda lifetime semantics similar to a block literal. With ARC, the effect is much less obvious because the lifetime of blocks is already managed.
llvm-svn: 151797
|
| |
|
|
|
|
| |
conversion-to-block-pointer outside of ARC. Testcases coming up soon.
llvm-svn: 151603
|
| |
|
|
|
|
| |
implement the retain+autorelease outside of ARC, and there's a bug that causes the generated code to crash in ARC (which I think is unrelated to my code, although I'm not completely sure).
llvm-svn: 151428
|
| |
|
|
| |
llvm-svn: 151150
|
| |
|
|
| |
llvm-svn: 150931
|
| |
|
|
|
|
| |
std::initializer_list is now complete. Onward to array new.
llvm-svn: 150926
|