| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Use CaptureDroppedDiagnostics to make sure that there is a diagnostic
client installed when warning flags are parsed.
llvm-svn: 186582
|
|
|
|
|
|
| |
with other attribute handlers, as well as other attribute error messages. Added missing test cases for the unavailable attribute, and updated the deprecated test case.
llvm-svn: 186578
|
|
|
|
|
|
|
|
| |
point isn't 64-bit aligned
Add x86-64 triple, and check its datalayout. Also add some comments, and use the new CHECK-LABEL.
llvm-svn: 186564
|
|
|
|
|
|
| |
__destroy_helper_block_, but do generate scope information.
llvm-svn: 186553
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r186331).
Original commit log:
If we friend a declaration twice, that should not make it visible to
name lookup in the surrounding context. Slightly rework how we handle
friend declarations to inherit the visibility of the prior
declaration, rather than setting a friend declaration to be visible
whenever there was a prior declaration.
llvm-svn: 186546
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cl.exe treats wide bitfields as an error. This patch causes them to be
an error if IsMsStruct is true, as it is in straight C.
Patch by Warren Hunt!
Reviewers: eli.friedman
Differential Revision: http://llvm-reviews.chandlerc.com/D1125
llvm-svn: 186536
|
|
|
|
|
|
| |
on the selector name.
llvm-svn: 186524
|
|
|
|
|
|
|
|
|
| |
Previously, we would simply abort the path when we saw a default member
initialization; now, we actually attempt to evaluate it. Like default
arguments, the contents of these expressions are not actually part of the
current function, so we fall back to constant evaluation.
llvm-svn: 186521
|
|
|
|
|
|
|
|
|
|
| |
Previously, SValBuilder knew how to evaluate StringLiterals, but couldn't
handle an array-to-pointer decay for constant values. Additionally,
RegionStore was being too strict about loading from an array, refusing to
return a 'char' value from a 'const char' array. Both of these have been
fixed.
llvm-svn: 186520
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the use of a std::initializer_list (actually, a
CXXStdInitializerListExpr) would cause the analyzer to give up on the rest
of the path. Now, it just uses an opaque symbolic value for the
initializer_list and continues on.
At some point in the future we can add proper support for initializer_list,
with access to the elements in the InitListExpr.
<rdar://problem/14340207>
llvm-svn: 186519
|
|
|
|
| |
llvm-svn: 186502
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch enables ExprEndgine to reason about temporary object destructors.
However, these destructor calls are never inlined, since this feature is still
broken. Still, this is sufficient to properly handle noreturn temporary
destructors and close bug #15599. I have also enabled the cfg-temporary-dtors
analyzer option by default.
Reviewers: jordan_rose
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1131
llvm-svn: 186498
|
|
|
|
| |
llvm-svn: 186492
|
|
|
|
|
|
|
|
| |
_Complex load/store didn't have their alignment set properly, which was visible when GCC's torture tests use volatile _Complex.
Update some existing tests to check for alignment, and add a new test which also has over-aligned volatile _Complex (since the imaginary part shouldn't be overaligned, only the real part).
llvm-svn: 186490
|
|
|
|
|
|
|
| |
only add outer-most conforming protocols as adding
others are redundant.
llvm-svn: 186473
|
|
|
|
|
|
|
|
|
|
| |
Sema needs to be able to accurately determine what will be
emitted as a constant initializer and what will not, so
we get accurate errors in C and accurate -Wglobal-constructors
warnings in C++. This makes Expr::isConstantInitializer match
CGExprConstant as closely as possible.
llvm-svn: 186464
|
|
|
|
|
|
| |
properties, then class conforms to that protocol.
llvm-svn: 186460
|
|
|
|
|
|
| |
Fixes <rdar://problem/14442543>.
llvm-svn: 186452
|
|
|
|
|
|
|
| |
declaration to include list of protocols class
conforms to.
llvm-svn: 186443
|
|
|
|
| |
llvm-svn: 186438
|
|
|
|
|
|
|
|
| |
Unfortunately I don't think there's a good way to validate branch targets on
release builds. Fortunately it's a minor part of this test (and based on
generic code) so I don't mind dropping it.
llvm-svn: 186398
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds three overloaded intrinsics to Clang:
T __builtin_arm_ldrex(const volatile T *addr)
int __builtin_arm_strex(T val, volatile T *addr)
void __builtin_arm_clrex()
The intent is that these do what users would expect when given most sensible
types. Currently, "sensible" translates to ints, floats and pointers.
llvm-svn: 186394
|
|
|
|
|
|
| |
This fixes PR8256 and some others.
llvm-svn: 186385
|
|
|
|
|
|
|
|
|
| |
Not completely sure this is right, but it's clearly better than what
we did before this commit (effectively dropping the attribute).
<rdar://problem/14413117>
llvm-svn: 186373
|
|
|
|
|
|
|
|
|
| |
The record layout code didn't properly take into account that
an empty class at offset 0 can have an alignment greater than 1.
Patch by Andrea Di Biagio.
llvm-svn: 186370
|
|
|
|
|
|
|
|
|
|
| |
Make sure we call BuildFieldReferenceExpr with the appropriate decl
when a member of an anonymous union is made public with a using decl.
Also, fix a crash on invalid field access into an anonymous union.
Fixes PR16630.
llvm-svn: 186367
|
|
|
|
|
|
| |
TagDecl:IsCompleteDefinitionRequired)
llvm-svn: 186351
|
|
|
|
| |
llvm-svn: 186348
|
|
|
|
|
|
|
|
| |
recovery is not attempted with the fixit. Also move the associated test
case from FixIt/fixit.cpp to SemaCXX/member-expr.cpp since the fixit is
no longer automatically applied.
llvm-svn: 186342
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This breaks the build of basic patterns with repeated friend
declarations. See the added test case in SemaCXX/friend.cpp or the test
case reported to the original commit log.
Original commit log:
If we friend a declaration twice, that should not make it visible to
name lookup in the surrounding context. Slightly rework how we handle
friend declarations to inherit the visibility of the prior
declaration, rather than setting a friend declaration to be visible
whenever there was a prior declaration.
llvm-svn: 186331
|
|
|
|
|
|
|
|
| |
does not substitute a sizeof-pack expression.
The solution is proposed by Richard Smith.
Differential Revision: http://llvm-reviews.chandlerc.com/D869
llvm-svn: 186306
|
|
|
|
| |
llvm-svn: 186279
|
|
|
|
|
|
| |
(and that spuriously fails with modules enabled).
llvm-svn: 186278
|
|
|
|
|
|
|
| |
global allocation or deallocation function, that should not cause that global
allocation or deallocation function to become unavailable.
llvm-svn: 186270
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
emit the full definition of a type in -flimit-debug-info
This simplifies the core benefit of -flimit-debug-info by taking a more
systematic approach to avoid emitting debug info definitions for types
that only require declarations. The previous ad-hoc approach (3 cases
removed in this patch) had many holes.
The general approach (adding a bit to TagDecl and callback through
ASTConsumer) has been discussed with Richard Smith - though always open
to revision.
llvm-svn: 186262
|
|
|
|
|
|
|
|
|
|
|
| |
Test coverage for non-dependent pack expansions doesn't demonstrate a
failure prior to this patch (a follow-up commit improving debug info
will cover this commit specifically) but covers a related hole in our
test coverage.
Reviewed by Richard Smith & Eli Friedman.
llvm-svn: 186261
|
|
|
|
|
|
|
| |
decls. That can reenter deserialization and explode horribly by trying to merge
a declaration that we've not got very far through deserializing yet.
llvm-svn: 186236
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
They don't seem to be used for back references, presumably because a
function template is unlikely to reoccur, while a class template name
may reoccur as a type.
This fixes a mangling issue for llvm::hash_combine() in Hashing.h.
Reviewers: timurrrr
Differential Revision: http://llvm-reviews.chandlerc.com/D1078
llvm-svn: 186233
|
|
|
|
|
|
|
| |
Guarded malloc emits some messages at the beginning in stderr when enabled.
These messages caused a few tests to fail.
llvm-svn: 186219
|
|
|
|
|
|
|
|
|
| |
Using CurFuncDecl is both correct and simple compared to crawling
the DeclContexts of the block.
Fixes <rdar://problem/14415072>.
llvm-svn: 186210
|
|
|
|
|
|
|
|
| |
of a function call.
This fixes PR5898 and means we now have a better diagnostic here than GCC.
llvm-svn: 186208
|
|
|
|
|
|
|
|
|
|
|
| |
Original commit log:
If we friend a declaration twice, that should not make it visible to
name lookup in the surrounding context. Slightly rework how we handle
friend declarations to inherit the visibility of the prior
declaration, rather than setting a friend declaration to be visible
whenever there was a prior declaration.
llvm-svn: 186199
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fix is.
Original commit log:
If we friend a declaration twice, that should not make it visible to
name lookup in the surrounding context. Slightly rework how we handle
friend declarations to inherit the visibility of the prior
declaration, rather than setting a friend declaration to be visible
whenever there was a prior declaration.
llvm-svn: 186185
|
|
|
|
|
|
| |
Fixes PR16584 (radar://14415223).
llvm-svn: 186172
|
|
|
|
|
|
|
| |
ivar type in meta-data while preventing recursive
encoding in a corner case. // rdar://14408244
llvm-svn: 186169
|
|
|
|
|
|
| |
...so we don't regress on std::addressof.
llvm-svn: 186140
|
|
|
|
|
|
|
| |
Make sure we don't crash when checking whether an assignment operator
without any arguments is a special member. <rdar://problem/14397774>.
llvm-svn: 186137
|
|
|
|
| |
llvm-svn: 186135
|
|
|
|
|
|
| |
defined for a class.
llvm-svn: 186128
|
|
|
|
|
|
|
|
|
|
|
| |
Various pieces of code, like base initialization in Sema and RTTI IRGen,
don't properly ignore qualifiers on base classes. Instead of auditing the
whole codebase, just strip them off in the getter. (The type as written is
still available in the TypeSourceInfo for code that cares.)
Fixes PR16596.
llvm-svn: 186125
|