| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
They were unused and pulled in Diagnostic.h for no reason.
llvm-svn: 149779
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
value of class type, look for a unique conversion operator converting to
integral or unscoped enumeration type and use that. Implements [expr.const]p5.
Sema::VerifyIntegerConstantExpression now performs the conversion and returns
the converted result. Some important callers of Expr::isIntegralConstantExpr
have been switched over to using it (including all of those required for C++11
conformance); this switch brings a side-benefit of improved diagnostics and, in
several cases, simpler code. However, some language extensions and attributes
have not been moved across and will not perform implicit conversions on
constant expressions of literal class type where an ICE is required.
In passing, fix static_assert to perform a contextual conversion to bool on its
argument.
llvm-svn: 149776
|
| |
|
|
|
|
|
| |
array new expression. This lays some groundwork for the implicit conversion to
integral or unscoped enumeration which C++11 ICEs undergo.
llvm-svn: 149772
|
| |
|
|
|
|
| |
undefined arguments, when CF functions are called with wrong number of arguments.
llvm-svn: 149771
|
| |
|
|
| |
llvm-svn: 149770
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
new, is well-formed with defined semantics of throwing (a type which can be
caught by a handler for) std::bad_array_new_length, unlike in C++98 where it is
somewhere nebulous between undefined behavior and ill-formed.
If the array size is an integral constant expression and satisfies one of these
criteria, we would previous the array new expression, but now in C++11 mode, we
merely issue a warning (the code is still rejected in C++98 mode, naturally).
We don't yet implement new C++11 semantics correctly (see PR11644), but we do
implement the overflow checking, and (for the default operator new) convert such
expressions to an exception, so accepting such code now does not seem especially
unsafe.
llvm-svn: 149767
|
| |
|
|
| |
llvm-svn: 149766
|
| |
|
|
| |
llvm-svn: 149764
|
| |
|
|
| |
llvm-svn: 149762
|
| |
|
|
|
|
| |
allocator is given the pointer to allocate into.
llvm-svn: 149760
|
| |
|
|
| |
llvm-svn: 149759
|
| |
|
|
|
|
|
|
| |
Sync with the change in r149652.
Also fix the comment to sync with LLVM's config.h header.
llvm-svn: 149748
|
| |
|
|
|
|
|
| |
- osx.coreFoundation.containers.IndexOutOfBounds
- osx.cocoa.SelfInit
llvm-svn: 149747
|
| |
|
|
| |
llvm-svn: 149746
|
| |
|
|
|
|
| |
(Also renames in other ObjC checkers to create one category of checks.)
llvm-svn: 149745
|
| |
|
|
|
|
| |
last commit. Sorry for the outage.
llvm-svn: 149744
|
| |
|
|
| |
llvm-svn: 149742
|
| |
|
|
|
|
| |
by adding a triple, and the typedef makes things worse on windows.
llvm-svn: 149740
|
| |
|
|
|
|
| |
of ArrayRef goodness. No functionality change.
llvm-svn: 149739
|
| |
|
|
| |
llvm-svn: 149738
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
want to provide "po"-like functionality which
treats the result of an expression implicitly as
"id" (if it is not otherwise known) and prints
it as an Objective-C object.
This has in the past been gated by the
"DebuggerSupport" language option, but that is
too general. Debuggers also provide other commands
like "print" that do not make any assumptions
about whether the object is an Objective-C object.
This patch makes the assumption conditional on a
new language option: DebuggerCastResultToId. I
have also made corresponding modifications to the
testsuite.
llvm-svn: 149735
|
| |
|
|
| |
llvm-svn: 149734
|
| |
|
|
|
|
| |
declaration is a reference. rdar://10749990
llvm-svn: 149733
|
| |
|
|
|
|
| |
look into a rather nasty bug in the new odr-use marking code.
llvm-svn: 149731
|
| |
|
|
|
|
|
|
|
|
| |
The recent support for potential constant expressions exposed a bug in the
implementation of libstdc++4.6, where numeric_limits<int>::min() is defined
as (int)1 << 31, which isn't a constant expression. Disable the 'constexpr
function never produces a constant expression' error inside system headers
to compensate.
llvm-svn: 149729
|
| |
|
|
| |
llvm-svn: 149726
|
| |
|
|
| |
llvm-svn: 149725
|
| |
|
|
|
|
| |
Idea by Jean-Daniel Dupas.
llvm-svn: 149721
|
| |
|
|
| |
llvm-svn: 149719
|
| |
|
|
|
|
| |
Still left: explicit captures in lambdas need to cause implicit capture, and I need to take a look at the diagnostics for some cases.
llvm-svn: 149718
|
| |
|
|
|
|
| |
size. Otherwise, we can end up with bogus layouts.
llvm-svn: 149703
|
| |
|
|
|
|
|
|
| |
template without a corresponding parameter pack, don't immediately
substitute the alias template. This is under discussion in the C++
committee, and may become ill-formed, but for now we match GCC.
llvm-svn: 149697
|
| |
|
|
|
|
| |
windows hosts.
llvm-svn: 149696
|
| |
|
|
|
|
| |
Also, in C, call this a C11 extension rather than a GNU extension.
llvm-svn: 149695
|
| |
|
|
|
|
|
|
|
| |
template. Such pack expansions can easily fail at template
instantiation time, if the expanded parameter packs are of the wrong
length. Fixes <rdar://problem/10040867>, PR9021, and the example that
came up today at Going Native.
llvm-svn: 149685
|
| |
|
|
| |
llvm-svn: 149682
|
| |
|
|
|
|
|
|
|
| |
That llvm change removed the -trap-func backend option, so that using
-ftrap-function with clang would cause the backend to complain. Fix it
by adding the trap function name to the CodeGenOptions and passing it through
to the TargetOptions.
llvm-svn: 149679
|
| |
|
|
|
|
|
| |
instead of a SourceRange, and handle the case where the range is
a char (not token) range.
llvm-svn: 149677
|
| |
|
|
|
|
| |
the limit on the number of fixits.
llvm-svn: 149676
|
| |
|
|
|
|
| |
available.
llvm-svn: 149675
|
| |
|
|
|
|
| |
mapped to an error). We can consider mapping it back to an error later.
llvm-svn: 149670
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* When we detect that a CFG block has inconsistent lock sets, point the
diagnostic at the location where we found the inconsistency, and point a note
at somewhere the inconsistently-locked mutex was locked.
* Fix the wording of the normal (non-loop, non-end-of-function) case of this
diagnostic to not suggest that the mutex is going out of scope.
* Fix the diagnostic emission code to keep a warning and its note together when
sorting the diagnostics into source location order.
llvm-svn: 149669
|
| |
|
|
|
|
|
| |
'continue' and another block, prefer the lockset from the other block, and
diagnose the 'continue' block as being the end of a loop.
llvm-svn: 149666
|
| |
|
|
|
|
|
|
| |
a cast to the same type is allowed so long as it does not cast away constness.
Fix for PR11747. Patch by Aaron Ballman. Reviewed by Eli.
llvm-svn: 149664
|
| |
|
|
|
|
| |
bit of the code for lambdas. The only visible changes are that we use the C++11 odr-used rules to figure out when a variable is captured, and type-checking in lambdas is slightly more accurate.
llvm-svn: 149663
|
| |
|
|
|
|
| |
rdar://10736625
llvm-svn: 149662
|
| |
|
|
|
|
| |
will be necessary to handle references to captured variables.
llvm-svn: 149660
|
| |
|
|
|
|
| |
default mapped to an error. This is to ease the transition of large apps moving from non-ARC to ARC.
llvm-svn: 149659
|
| |
|
|
|
|
| |
a builtin.
llvm-svn: 149657
|
| |
|
|
|
|
|
| |
it is treated as of 'id' type resulting in multiple method lookup.
// rdar://10686120
llvm-svn: 149653
|