| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
Introduces more clear scoping flags & flag combinations which should hopefully
be more understandable.
llvm-svn: 167766
|
|
|
|
| |
llvm-svn: 167761
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on C, but also include dialects of C++ earlier than C++11.
There was enough consensus that we *can* get a good language solution
to have an annotation outside of C++11, and without this annotation
this warning doesn't quite mean's completeness criteria for this
kind of warning. For now, restrict this warning to C++11 (where an
annotation exists), and make this the behavior for the LLVM 3.2 release.
Afterwards, we will hammer out a language solution that we are all
happy with.
llvm-svn: 167749
|
|
|
|
|
|
|
|
|
| |
The 'a', 'c', and 'd' constraints on i386 mean a 32-bit register. We cannot
place a 64-bit value into the 32-bit register. Error out instead of causing the
compiler to spew general badness.
<rdar://problem/12415959>
llvm-svn: 167717
|
|
|
|
|
|
|
| |
CXXRecordDecl::forallBases, which does *not* do what I need. Fixes the
failure introduced in r167651.
llvm-svn: 167668
|
|
|
|
|
|
| |
discussion on cfe-dev.
llvm-svn: 167662
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The rationale is that there is no good workflow to silence the warning
for specific cases, other than using pragmas. This is because the
attribute to decorate an explicit fall through is only available
in C++11.
By that argument, this should probably also be disabled unless one
is using C++11, but apparently there is an explicit test case for
this warning when using C++98. This will require further discussion
on cfe-commits.
Fixes: <rdar://problem/12584746>
llvm-svn: 167655
|
|
|
|
|
|
| |
Fix to regression caused by r167650, caught by Richard Smith in code review.
llvm-svn: 167653
|
|
|
|
|
|
|
| |
would have diagnosed this at instantiation time anyway, if only we
didn't hang on all of these test cases. Fixes <rdar://problem/12629723>
llvm-svn: 167651
|
|
|
|
|
|
|
|
|
|
|
|
| |
C++11 3.3.3/2 "A parameter name shall not be redeclared in the outermost block
of the function definition nor in the outermost block of any handler associated
with a function-try-block."
It's not totally clear to me whether the "FIXME" case is covered by this, but
Richard Smith thinks it probably should be. It's just a bit more involved to
fix that case.
llvm-svn: 167650
|
|
|
|
|
|
|
|
|
| |
This warning was failing to fire under ARC because of the implicit
lifetime casts added around the object literal expression.
<rdar://problem/11300873>, again.
llvm-svn: 167648
|
|
|
|
|
|
|
|
|
| |
variable. Previously we didn't notice the type was dependent if the only
dependence came from an array bound.
Patch by Brian Brooks!
llvm-svn: 167642
|
|
|
|
|
|
|
| |
I couldn't think of a way to make an operator() invalid without returning
earlier from this function other than making it static, so no new test.
llvm-svn: 167609
|
|
|
|
|
|
| |
Patch from Brian Brooks!
llvm-svn: 167604
|
|
|
|
|
|
|
|
|
|
|
|
| |
function that takes a const Foo&, where Foo is convertible from a large number
of pointer types, we print ALL the overloads, no matter the setting of
-fshow-overloads.
There is potential follow-on work in unifying the "print candidates, but not
too many" logic between OverloadCandidateSet::NoteCandidates and
ImplicitConversionSequence::DiagnoseAmbiguousConversion.
llvm-svn: 167596
|
|
|
|
| |
llvm-svn: 167588
|
|
|
|
| |
llvm-svn: 167587
|
|
|
|
|
|
| |
ConstructorDecl source range.
llvm-svn: 167583
|
|
|
|
| |
llvm-svn: 167565
|
|
|
|
| |
llvm-svn: 167551
|
|
|
|
|
|
|
|
|
|
| |
the base class. If the base class deduction succeeds, use those results. If
it fails, keep using the results from the derived class template deduction.
This prevents an assertion later where the type of deduction failure doesn't
match up with the template deduction info.
llvm-svn: 167550
|
|
|
|
|
|
|
|
|
| |
instantiate it if it can be instantiated and implicitly define it if it can be
implicitly defined. This matches g++'s approach. Remove some cases from
SemaOverload which were marking functions as referenced when just planning how
overload resolution would proceed; such cases are not actually references.
llvm-svn: 167514
|
|
|
|
| |
llvm-svn: 167510
|
|
|
|
|
|
|
|
|
| |
Spent longer than reasonable looking for a nice way to test this & decided to
give up for now. Open to suggestions/requests. Richard Smith suggested adding
something to ASTMatchers but it wasn't readily apparent how to test this with
that.
llvm-svn: 167507
|
|
|
|
| |
llvm-svn: 167506
|
|
|
|
|
|
|
|
| |
to have UsingDirectiveDecl inside anything other than those two.
No user-visible functionality change.
llvm-svn: 167376
|
|
|
|
|
|
| |
checking against a blacklist.
llvm-svn: 167362
|
|
|
|
| |
llvm-svn: 167358
|
|
|
|
| |
llvm-svn: 167266
|
|
|
|
| |
llvm-svn: 167184
|
|
|
|
| |
llvm-svn: 167091
|
|
|
|
| |
llvm-svn: 166957
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The problem is as follows: C++11 has contexts which are not
potentially-evaluated, and yet in which we are required or encouraged to
perform constant evaluation. In such contexts, we are not permitted to
implicitly define special member functions for literal types, therefore
we cannot evalaute those constant expressions.
Punt on this in one more context for now by skipping checking constexpr
variable initializers if they occur in dependent contexts.
llvm-svn: 166956
|
|
|
|
| |
llvm-svn: 166946
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the warning would erroneously fire on this:
for (Test *a in someArray)
use(a.weakProp);
...because it looks like the same property is being accessed over and over.
However, clearly this is not the case. We now ignore loops like this for
local variables, but continue to warn if the base object is a parameter,
global variable, or instance variable, on the assumption that these are
not repeatedly usually assigned to within loops.
Additionally, do-while loops where the condition is 'false' are not really
loops at all; usually they're just used for semicolon-swallowing macros or
using "break" like "goto".
<rdar://problem/12578785&12578849>
llvm-svn: 166942
|
|
|
|
|
|
| |
-Wunneeded-internal-declaration for reference types for now. This needs more work; the cases we currently miss are a bit random.
llvm-svn: 166899
|
|
|
|
|
|
|
|
|
| |
whether the initializer is value-dependent rather than whether we are in a
dependent context. This allows us to detect some errors sooner, and fixes a
crash-on-invalid if a dependent type leaks out to a non-dependent context in
error recovery.
llvm-svn: 166898
|
|
|
|
|
|
|
|
| |
might have been used in constant expressions, rather than suppressing it for
variables which are const. The important thing here is that such variables
can have their values used without actually being marked as 'used'.
llvm-svn: 166896
|
|
|
|
|
|
| |
incomplete type has a destructor or not.
llvm-svn: 166895
|
|
|
|
| |
llvm-svn: 166878
|
|
|
|
| |
llvm-svn: 166876
|
|
|
|
|
|
| |
to reduce.
llvm-svn: 166863
|
|
|
|
|
|
|
| |
jump over destructor calls.
Fixes pr13812.
llvm-svn: 166855
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This code checks the ASM string to see if the output size is able to fit within
the variable specified as the output. For instance, scalar-to-vector conversions
may not really work. It's on by default, but can be turned off with a flag if
you think you know what you're doing.
This is placed under a flag ('-Wasm-operand-widths') and flag group ('-Wasm').
<rdar://problem/12284092>
llvm-svn: 166737
|
|
|
|
| |
llvm-svn: 166723
|
|
|
|
| |
llvm-svn: 166655
|
|
|
|
|
|
|
| |
modifiers. (From an idea by Eric...)
<rdar://problem/12284092>
llvm-svn: 166647
|
|
|
|
|
|
| |
rebuilds a function type, and that function type has parens around its name.
llvm-svn: 166644
|
|
|
|
| |
llvm-svn: 166625
|
|
|
|
| |
llvm-svn: 166520
|