| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
isTrivial() call.
llvm-svn: 151259
|
| |
|
|
|
|
| |
optimization, the current implementation is also a denser.
llvm-svn: 151257
|
| |
|
|
|
|
| |
instead of employing a wasteful std::set.
llvm-svn: 151255
|
| |
|
|
|
|
| |
malloc thrashing.
llvm-svn: 151254
|
| |
|
|
|
|
| |
forget the vptrs.
llvm-svn: 151245
|
| |
|
|
| |
llvm-svn: 151241
|
| |
|
|
|
|
|
| |
compiler support for the std::is_trivially_assignable library type
trait.
llvm-svn: 151240
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Handle some situations where we should never make a decl more visible,
even when merging in an explicit visibility.
* Handle attributes in members of classes that are explicitly specialized.
Thanks Nico for the report and testing, Eric for the initial review, and dgregor
for the awesome test27 :-)
llvm-svn: 151236
|
| |
|
|
| |
llvm-svn: 151231
|
| |
|
|
|
|
|
|
| |
<rdar://problem/10907510>, and makes the ASTs a bit more self-consistent.
(I've chosen to keep the qualifiers, but it isn't a strong preference; if anyone prefers removing them, please yell.)
llvm-svn: 151229
|
| |
|
|
|
|
|
|
|
| |
C++11, and with braced-init-list initializers in conditions. This exposed an
ambiguity with enum underlying types versus bitfields, which we resolve by
treating 'enum E : T {' as always defining an enumeration (even if it would
only successfully parse as a bitfield). This appears to be g++ compatible.
llvm-svn: 151227
|
| |
|
|
| |
llvm-svn: 151225
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make this call an exception in ExprEngine::invalidateArguments:
'int pthread_setspecific(ptheread_key k, const void *)' stores
a value into thread local storage. The value can later be retrieved
with 'void *ptheread_getspecific(pthread_key)'. So even thought the
parameter is 'const void *', the region escapes through the
call.
(Here we just blacklist the call in the ExprEngine's default
logic. Another option would be to add a checker which evaluates
the call and triggers the call to invalidate regions.)
Teach the Malloc Checker, which treats all system calls as safe about
the API.
llvm-svn: 151220
|
| |
|
|
| |
llvm-svn: 151217
|
| |
|
|
| |
llvm-svn: 151216
|
| |
|
|
| |
llvm-svn: 151203
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- We should not evaluate strdup in the Malloc Checker, it's the job of
CString checker, so just update the RefState to reflect allocated
memory.
- Refactor to reduce LOC: remove some wrapper auxiliary functions, make
all functions return the state and add the transition in one place
(instead of in each auxiliary function).
llvm-svn: 151188
|
| |
|
|
|
|
|
|
|
|
| |
by -target and similar options. As discussed in PR 12026, the change
broke support for target-prefixed tools, i.e. calling x86_64--linux-ld
when compiling for x86_64--linux. Improve the test cases added
originally in r149083 to not require execution, just executable files.
Document the hack with appropiate FIXME comments.
llvm-svn: 151185
|
| |
|
|
|
|
| |
abi.
llvm-svn: 151176
|
| |
|
|
|
|
|
| |
are likely many other OPT_xxxx_EQ options that could/should be added here.
rdar://10704648
llvm-svn: 151174
|
| |
|
|
| |
llvm-svn: 151173
|
| |
|
|
| |
llvm-svn: 151172
|
| |
|
|
|
|
| |
face of exceptions yet.
llvm-svn: 151171
|
| |
|
|
|
|
|
|
|
|
| |
lambda closure type's function pointer conversion over user-defined
conversion via a lambda closure type's block pointer conversion,
always. This is a preference for more-standard code (since blocks
are an extension) and a nod to efficiency, since function pointers
don't require any memory management. Fixes PR12063.
llvm-svn: 151170
|
| |
|
|
|
|
| |
direct member initializers.
llvm-svn: 151155
|
| |
|
|
|
|
|
|
|
| |
This adds the -Wformat-non-standard flag (off by default,
enabled by -pedantic), which warns about non-standard
things in format strings (such as the 'q' length modifier,
the 'S' conversion specifier, etc.)
llvm-svn: 151154
|
| |
|
|
| |
llvm-svn: 151152
|
| |
|
|
| |
llvm-svn: 151151
|
| |
|
|
| |
llvm-svn: 151150
|
| |
|
|
|
|
| |
I think there's a deeper problem here in the way TransformCXXConstructExpr works, but I won't tackle it now.
llvm-svn: 151146
|
| |
|
|
|
|
|
|
|
|
| |
templated function; (Not just the template parameter scope as previously). Also enter the scope stack in the correct order.
Otherwise this breaks some invariant during name lookup especially when dealing with shadowed declaration
Fix PR11931.
llvm-svn: 151140
|
| |
|
|
|
|
| |
the diagnostic for using a parenthesized direct-initializer in a condition.
llvm-svn: 151137
|
| |
|
|
|
|
| |
<rdar://problem/10907547>.
llvm-svn: 151133
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
block pointer that returns a block literal which captures (by copy)
the lambda closure itself. Some aspects of the block literal are left
unspecified, namely the capture variable (which doesn't actually
exist) and the body (which will be filled in by IRgen because it can't
be written as an AST).
Because we're switching to this model, this patch also eliminates
tracking the copy-initialization expression for the block capture of
the conversion function, since that information is now embedded in the
synthesized block literal. -1 side tables FTW.
llvm-svn: 151131
|
| |
|
|
|
|
| |
bug involving packs. Fixes PR12049.
llvm-svn: 151130
|
| |
|
|
| |
llvm-svn: 151124
|
| |
|
|
|
|
| |
the patch.
llvm-svn: 151122
|
| |
|
|
|
|
|
| |
, when we return a symbol reachable to the malloced one via pointer
arithmetic.
llvm-svn: 151121
|
| |
|
|
| |
llvm-svn: 151120
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function call (or a comma expression with a function call on its right-hand
side), possibly parenthesized, then the return type is not required to be
complete and a temporary is not bound. Other subexpressions inside a decltype
expression do not get this treatment.
This is implemented by deferring the relevant checks for all calls immediately
within a decltype expression, then, when the expression is fully-parsed,
checking the relevant constraints and stripping off any top-level temporary
binding.
Deferring the completion of the return type exposed a bug in overload
resolution where completion of the argument types was not attempted, which
is also fixed by this change.
llvm-svn: 151117
|
| |
|
|
| |
llvm-svn: 151112
|
| |
|
|
|
|
|
| |
crash. This can speedup the process of generating a delta reduced test case.
rdar://10905465
llvm-svn: 151109
|
| |
|
|
|
|
| |
any implementation in tu was not being translated.
llvm-svn: 151106
|
| |
|
|
| |
llvm-svn: 151103
|
| |
|
|
|
|
|
|
|
|
|
| |
that 'this' can be used in the brace-or-equal-initializer of a
non-static data member, and C++11 [expr.prim.lambda]p9, which says
that lambda expressions not in block scope can have no captures, side
fully with C++11 [expr.prim.general]p4 by allowing 'this' to be
captured within these initializers. This seems to be the intent of
non-static data member initializers.
llvm-svn: 151101
|
| |
|
|
| |
llvm-svn: 151100
|
| |
|
|
|
|
| |
rdar://problem/10904479
llvm-svn: 151089
|
| |
|
|
|
|
|
|
|
| |
expression after we've finished the function body of the corresponding
function call operator. Otherwise, ActOnFinishFunctionBody() will see
the (unfinished) evaluation context of the lambda expression
itself. Fixes PR12031.
llvm-svn: 151082
|
| |
|
|
|
|
| |
is non-null when diagnosing a broken attempt to write a for-range-statement.
llvm-svn: 151081
|
| |
|
|
|
|
| |
warn if the format string argument is a parameter that is not itself declared as a format string with compatible format.
llvm-svn: 151080
|