| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
value-dependent expression, don't complain that it wasn't the constant
we wanted. Fixes <rdar://problem/11688587> and PR11074.
llvm-svn: 159404
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Corrected type for index of _mm256_mask_i32gather_pd
from 256-bit to 128-bit
Corrected types for src|dst|mask of _mm256_mask_i64gather_ps
from 256-bit to 128-bit
Support the following intrinsics:
_mm_mask_i32gather_epi64, _mm256_mask_i32gather_epi64,
_mm_mask_i64gather_epi64, _mm256_mask_i64gather_epi64,
_mm_mask_i32gather_epi32, _mm256_mask_i32gather_epi32,
_mm_mask_i64gather_epi32, _mm256_mask_i64gather_epi32
llvm-svn: 159403
|
|
|
|
|
|
|
| |
type traits that assignment to/construction of a lifetime-qualified
object under ARC is *not* trivial. Fixes <rdar://problem/11738725>.
llvm-svn: 159401
|
|
|
|
|
|
| |
helpers rather than its own special-rolled code.
llvm-svn: 159398
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously:
...the comment said DFS...
...the WorkList being instantiated said BFS...
...and the implementation was actually DFS...
...due to an unintentional change in 2010...
...and everything kept working anyway.
This fixes our std::deque implementation of BFS, but switches back to a
SmallVector-based implementation of DFS.
We should probably still investigate the ramifications of DFS vs. BFS,
especially for large functions (and especially when we hit our block path
limit), since this might completely change our memory use. It can also mask
some bugs and reveal others depending on when we halt analysis. But at least
we will not have this kind of little mistake creep in again.
llvm-svn: 159397
|
|
|
|
| |
llvm-svn: 159394
|
|
|
|
|
|
| |
lockable objects.
llvm-svn: 159387
|
|
|
|
|
|
|
|
| |
file (not a terminal)
Reviewed (over the shoulder) by Richard Trieu.
llvm-svn: 159381
|
|
|
|
|
|
| |
parsing. Fixes <rdar://problem/11700604>.
llvm-svn: 159380
|
|
|
|
|
|
| |
is a following clause.
llvm-svn: 159369
|
|
|
|
|
|
| |
This patch was reviewed in the llvm-commits list by Jim Grosbach.
llvm-svn: 159366
|
|
|
|
|
|
| |
Previously this caused a crash, since protocols are not interfaces.
llvm-svn: 159357
|
|
|
|
|
|
| |
for tracking this.
llvm-svn: 159351
|
|
|
|
|
|
|
|
|
| |
handy. It can be done, but we would have to build a derived-to-base cast
during codegen to compute the correct this pointer.
I will handle covariant returns next.
llvm-svn: 159350
|
|
|
|
|
|
| |
This allows for setting the default TLS model. (PR9788)
llvm-svn: 159336
|
|
|
|
|
|
|
|
| |
undefined behaviour, and move the diagnostic for '' from an Error into
an ExtWarn in this group. This is important for some users of the preprocessor,
and is necessary for gcc compatibility.
llvm-svn: 159335
|
|
|
|
|
|
|
|
| |
the correct this pointer. There is some potential for sharing a bit more
code with canDevirtualizeMemberFunctionCalls, but that can be done in an
independent patch.
llvm-svn: 159326
|
|
|
|
|
|
| |
newlines there.
llvm-svn: 159325
|
|
|
|
| |
llvm-svn: 159309
|
|
|
|
|
|
| |
a declaration if there is a preprocessor directive between them.
llvm-svn: 159305
|
|
|
|
|
|
| |
references [-cxx-abi microsoft]
llvm-svn: 159296
|
|
|
|
| |
llvm-svn: 159295
|
|
|
|
|
|
|
| |
property retains a block object as it could be on
the stack. // rdar://11761511
llvm-svn: 159293
|
|
|
|
|
|
| |
before, so we don't incorrectly think arguments of function type are non-POD.
llvm-svn: 159290
|
|
|
|
|
|
|
| |
when it appears to be unused and occurs in a header.
// rdar://11202617
llvm-svn: 159282
|
|
|
|
| |
llvm-svn: 159279
|
|
|
|
| |
llvm-svn: 159267
|
|
|
|
|
|
|
|
|
| |
directories from the cmake file. Dunno what the history is here, but
we're not using it.
More refactorings to come here.
llvm-svn: 159261
|
|
|
|
| |
llvm-svn: 159260
|
|
|
|
|
|
|
| |
the current version of clang understands __attribute__((unused)) on
fields.
llvm-svn: 159252
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the presence of back references).
I've added an extra FileCheck pass for that with an extra "CURRENT" prefix.
I've carefully chosed the CURRENT/CORRECT prefixes so they
a) are self-descriptive
b) have the same length so the mangling between the current and the correct version is obvious
Feel free to ask me to change the prefixes if you know a better alternative.
llvm-svn: 159250
|
|
|
|
|
|
| |
were broken recently
llvm-svn: 159248
|
|
|
|
| |
llvm-svn: 159234
|
|
|
|
|
|
|
|
| |
as a gcc supported extension with usual treatment
with -pedantic (warn) and -pedantic-errors (error).
// rdar://11550996
llvm-svn: 159226
|
|
|
|
| |
llvm-svn: 159225
|
|
|
|
| |
llvm-svn: 159223
|
|
|
|
|
|
|
|
|
| |
Support the following intrinsics:
_mm_mask_i32gather_pd, _mm256_mask_i32gather_pd, _mm_mask_i64gather_pd
_mm256_mask_i64gather_pd, _mm_mask_i32gather_ps, _mm256_mask_i32gather_ps
_mm_mask_i64gather_ps, _mm256_mask_i64gather_ps
llvm-svn: 159222
|
|
|
|
|
|
|
| |
the member expression is qualified, call the method specified in the code,
not the most derived one we can find.
llvm-svn: 159219
|
|
|
|
|
|
|
|
|
|
|
|
| |
comparison between two templated types when they both appear in a diagnostic.
Type elision will remove indentical template arguments, which can be disabled
with -fno-elide-type. Cyan highlighting is applied to the differing types.
For more formatting, -fdiagnostic-show-template-tree will output the template
type as an indented text tree, with differences appearing inline. Template
tree works with or without type elision.
llvm-svn: 159216
|
|
|
|
| |
llvm-svn: 159215
|
|
|
|
|
|
| |
// rdar://11741435 pr13184
llvm-svn: 159213
|
|
|
|
|
|
|
|
| |
to see if we had an underlying final class or method, but we would then
use the cast type to do the call, resulting in a direct call to the wrong
method.
llvm-svn: 159212
|
|
|
|
|
|
|
| |
--serialize-diagnostics.
rdar://11734800
llvm-svn: 159208
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 159191
|
|
|
|
|
|
|
|
|
|
| |
constexpr function evaluation, and corresponding ASan / valgrind issue in
tests, by storing the corresponding value with the relevant stack frame. This
also prevents re-evaluation of the source of the underlying OpaqueValueExpr,
which makes a major performance difference for certain contrived code (see
testcase update).
llvm-svn: 159189
|
|
|
|
| |
llvm-svn: 159171
|
|
|
|
| |
llvm-svn: 159170
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This works around a quirk in the way that explicit template specializations are
handled in Clang. We generate an implicit declaration from the original
template which the explicit specialization is considered to redeclare. This
trips up the explicit delete logic.
This change only works around that strange representation. At some point it'd
be nice to remove those extra declarations to make the AST more accurately
reflect the C++ semantics.
Review by Doug Gregor.
llvm-svn: 159167
|
|
|
|
|
|
| |
struct and enum forward-declarations.
llvm-svn: 159164
|