| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
ownership qualifier cast which won't work.
// rdar://10244607
llvm-svn: 143258
|
| |
|
|
| |
llvm-svn: 143257
|
| |
|
|
|
|
| |
binary operator isn't an rvalue if it's an assignment operator.
llvm-svn: 143250
|
| |
|
|
|
|
|
| |
committee hasn't set a value for __STDC_VERSION__ yet, so this is a
placeholder. But at least it's > 199901L.
llvm-svn: 143245
|
| |
|
|
|
|
| |
in which case the ownership is redundant. Thanks to John for the suggestion.
llvm-svn: 143240
|
| |
|
|
|
|
|
|
|
|
| |
constexpr function arguments outside of their function (passing or returning
them by reference) does not work correctly yet.
Calling constexpr function templates does not work yet, since the bodies are not
instantiated until the end of the translation unit.
llvm-svn: 143234
|
| |
|
|
|
|
| |
for concrete type in -flimit-debug-info mode. This fixes some of the failures from bs15503.exp tests in gdb testsuite.
llvm-svn: 143227
|
| |
|
|
| |
llvm-svn: 143223
|
| |
|
|
|
|
| |
the common case (-O0, no always_inline) fast.
llvm-svn: 143222
|
| |
|
|
|
|
|
| |
an rvalue retainable object type with life-time qualifier has no
effect and wil be diagnosed as error. // rdar://10244607
llvm-svn: 143219
|
| |
|
|
|
|
| |
okay (compiler zeroes out the data). Fixes <rdar://problem/9151319>.
llvm-svn: 143215
|
| |
|
|
|
|
|
|
|
|
| |
are present in all the necessary places:
In constant expression evaluation, evaluate lvalues as lvalues and rvalues as
rvalues. Remove special case for caching reference initialization and fix a
cyclic initialization crash in the process.
llvm-svn: 143204
|
| |
|
|
| |
llvm-svn: 143187
|
| |
|
|
|
|
| |
to catch some future implicit lvalue-to-rvalue casts of inappropriate kinds.
llvm-svn: 143182
|
| |
|
|
|
|
| |
a binary operator involving a dependently-typed overload set.
llvm-svn: 143172
|
| |
|
|
|
|
|
|
|
|
|
| |
string is part of the function call, then there is no difference. If the
format string is not, the warning will point to the call site and a note
will point to where the format string is.
Fix-it hints for strings are moved to the note if a note is emitted. This will
prevent changes to format strings that may be used in multiple places.
llvm-svn: 143168
|
| |
|
|
| |
llvm-svn: 143166
|
| |
|
|
|
|
|
|
|
| |
rvalue. An assertion to catch this is in ImpCastExprToType will follow, but
vector operations currently trip over this (due to omitting the usual arithmetic
conversions). Also add an assert to catch missing lvalue-to-rvalue conversions
on the LHS of ->.
llvm-svn: 143155
|
| |
|
|
| |
llvm-svn: 143150
|
| |
|
|
|
|
| |
property refactoring. // rdar://10327068
llvm-svn: 143139
|
| |
|
|
|
|
|
|
|
| |
The OpenCL single precision division operation is only required to
be accurate to 2.5ulp. Annotate the fdiv instruction with metadata
which signals to the backend that an imprecise divide instruction
may be used.
llvm-svn: 143136
|
| |
|
|
|
|
| |
lazily-created static DenseMap. This DenseMap is cleared (and the files erased) via an atexit routine in the case an ASTUnit is not destroyed. Fixes <rdar://problem/10293367>.
llvm-svn: 143115
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AST file more lazy, so that we don't eagerly load that information for
all known identifiers each time a new AST file is loaded. The eager
reloading made some sense in the context of precompiled headers, since
very few identifiers were defined before PCH load time. With modules,
however, a huge amount of code can get parsed before we see an
@import, so laziness becomes important here.
The approach taken to make this information lazy is fairly simple:
when we load a new AST file, we mark all of the existing identifiers
as being out-of-date. Whenever we want to access information that may
come from an AST (e.g., whether the identifier has a macro definition,
or what top-level declarations have that name), we check the
out-of-date bit and, if it's set, ask the AST reader to update the
IdentifierInfo from the AST files. The update is a merge, and we now
take care to merge declarations before/after imports with declarations
from multiple imports.
The results of this optimization are fairly dramatic. On a small
application that brings in 14 non-trivial modules, this takes modules
from being > 3x slower than a "perfect" PCH file down to 30% slower
for a full rebuild. A partial rebuild (where the PCH file or modules
can be re-used) is down to 7% slower. Making the PCH file just a
little imperfect (e.g., adding two smallish modules used by a bunch of
.m files that aren't in the PCH file) tips the scales in favor of the
modules approach, with 24% faster partial rebuilds.
This is just a first step; the lazy scheme could possibly be improved
by adding versioning, so we don't search into modules we already
searched. Moreover, we'll need similar lazy schemes for all of the
other lookup data structures, such as DeclContexts.
llvm-svn: 143100
|
| |
|
|
|
|
|
|
| |
The code had it backwards, thinking size_t was signed, and using that for "%zd".
Also let the analysis get the types for (u)intmax_t while we are at it.
llvm-svn: 143099
|
| |
|
|
|
|
| |
from r143097.
llvm-svn: 143098
|
| |
|
|
| |
llvm-svn: 143085
|
| |
|
|
|
|
|
| |
decl. in Darwin due to certain projects requirement.
// rdar://10277579
llvm-svn: 143082
|
| |
|
|
| |
llvm-svn: 143077
|
| |
|
|
|
|
|
| |
value and ABI requires return slot to be passed as first
argument to message sent. // rdar://10331109
llvm-svn: 143053
|
| |
|
|
| |
llvm-svn: 143052
|
| |
|
|
|
|
|
|
|
| |
itself via an asm label.
available_externally functions are supposed to correspond to an external
function, and that is not the case in the examples in pr9614.
llvm-svn: 143049
|
| |
|
|
| |
llvm-svn: 143048
|
| |
|
|
|
|
|
|
|
|
|
| |
essence, the redeclaration chain for a class could end up in an
inconsistent state while deserializing multiple declarations in that
chain, where the circular linked list was not, in fact,
circular. Since only two redeclarations of the same entity will get
loaded when we're in this state, restore circularity when both have
been loaded. Fixes <rdar://problem/10324940> / PR11195.
llvm-svn: 143037
|
| |
|
|
| |
llvm-svn: 143027
|
| |
|
|
|
|
| |
inspection.
llvm-svn: 143021
|
| |
|
|
|
|
| |
<rdar://problem/10309088>.
llvm-svn: 143019
|
| |
|
|
|
|
| |
member expression. Refactoring to follow.
llvm-svn: 143017
|
| |
|
|
|
|
| |
instantiations too.
llvm-svn: 143016
|
| |
|
|
| |
llvm-svn: 142951
|
| |
|
|
| |
llvm-svn: 142937
|
| |
|
|
|
|
| |
Doug's feedback.
llvm-svn: 142935
|
| |
|
|
|
|
| |
GCC compiler workaround.
llvm-svn: 142931
|
| |
|
|
|
|
| |
decltype-specification when specifying a base type.
llvm-svn: 142928
|
| |
|
|
| |
llvm-svn: 142926
|
| |
|
|
|
|
| |
r142914: "Introduce a placeholder type for "pseudo object""
r142915: "Pull the pseudo-object stuff into its own file."
llvm-svn: 142921
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expressions: expressions which refer to a logical rather
than a physical l-value, where the logical object is
actually accessed via custom getter/setter code.
A subsequent patch will generalize the AST for these
so that arbitrary "implementing" sub-expressions can
be provided.
Right now the only client is ObjC properties, but
this should be generalizable to similar language
features, e.g. Managed C++'s __property methods.
llvm-svn: 142914
|
| |
|
|
|
|
|
| |
dependent ->, where the member being referred to is an anonymous struct or
union. This path was missed by the fix in r142890.
llvm-svn: 142910
|
| |
|
|
|
|
| |
with ns_consumes_self. Fixes <rdar://problem/10274056>.
llvm-svn: 142909
|
| |
|
|
|
|
| |
accept any char, not just signed char. Fixes <rdar://problem/10303638>.
llvm-svn: 142908
|
| |
|
|
| |
llvm-svn: 142907
|