| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 93215
|
|
|
|
|
|
|
| |
sequence. Lots of small relevant changes. Fixes some serious problems with
ambiguous conversions; also possibly improves associated diagnostics.
llvm-svn: 93214
|
|
|
|
|
|
|
|
|
|
| |
were performing name lookup for template names in C/ObjC and always
finding nothing. Turn off such lookup unless we're in C++ mode, along
with the check that determines whether the given identifier is a
"current class name", and assert that we don't make this mistake
again.
llvm-svn: 93207
|
|
|
|
| |
llvm-svn: 93205
|
|
|
|
|
|
| |
(fixes radar 6969189).
llvm-svn: 93201
|
|
|
|
|
|
| |
non-NULL before looking at the entity itself.
llvm-svn: 93199
|
|
|
|
|
|
| |
compile LanguageKit, although the resulting code crashes (although not in any of the functions that use VLAs).
llvm-svn: 93198
|
|
|
|
|
|
|
| |
is not also a typedef-name" actually means. For anyone keeping score,
that's John: 2, Doug: 0.
llvm-svn: 93196
|
|
|
|
|
|
|
| |
latter may (eventually) perform multiple levels of desugaring (thus
breaking the newly-added tests) and the former is faster. Thanks, John!
llvm-svn: 93192
|
|
|
|
|
|
|
|
|
| |
they redefine is a class-name but not a typedef-name, per C++0x
[dcl.typedef]p4. The code in the test was valid C++98 and is valid
C++0x, but an unintended consequence of DR56 made it ill-formed in
C++03 (which we were luck enough to implement). Fixes PR5455.
llvm-svn: 93188
|
|
|
|
|
|
| |
(fixes radar 6948022)
llvm-svn: 93186
|
|
|
|
| |
llvm-svn: 93181
|
|
|
|
|
|
| |
add a fixme.
llvm-svn: 93179
|
|
|
|
|
|
|
| |
function, be sure to adjust the resulting argument type to a pointer
(if necessary). Fixes PR5910 and PR5949.
llvm-svn: 93178
|
|
|
|
| |
llvm-svn: 93175
|
|
|
|
|
|
| |
for all visible conversion functions.
llvm-svn: 93173
|
|
|
|
|
|
| |
are in characters.
llvm-svn: 93171
|
|
|
|
| |
llvm-svn: 93169
|
|
|
|
| |
llvm-svn: 93168
|
|
|
|
|
|
|
|
| |
templates. Previously, a little thinko in the code that replaced a
conversion function template with its redeclaration was causing some
very weird lookup behavior.
llvm-svn: 93166
|
|
|
|
|
|
|
| |
say either "array type" or "function type", whichever it is. No reason
to make the user guess.
llvm-svn: 93164
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(C++ [temp.mem]p5-6), which involves template argument deduction based
on the type named, e.g., given
struct X { template<typename T> operator T*(); } x;
when we call
x.operator int*();
we perform template argument deduction to determine that T=int. This
template argument deduction is needed for template specialization and
explicit instantiation, e.g.,
template<> X::operator float*() { /* ... */ }
and when calling or otherwise naming a conversion function (as in the
first example).
This fixes PR5742 and PR5762, although there's some remaining ugliness
that's causing out-of-line definitions of conversion function
templates to fail. I'll look into that separately.
llvm-svn: 93162
|
|
|
|
|
|
| |
in a function. Fixes radar 7522803.
llvm-svn: 93159
|
|
|
|
|
|
|
|
|
|
| |
"ASTContext::getTypeSize() / 8". Replace [u]int64_t variables with CharUnits
ones as appropriate.
Also rename RawType, fromRaw(), and getRaw() in CharUnits to QuantityType,
fromQuantity(), and getQuantity() for clarity.
llvm-svn: 93153
|
|
|
|
|
|
| |
function. Fixes PR5985.
llvm-svn: 93150
|
|
|
|
|
|
| |
The old test case has a little mistake.
llvm-svn: 93148
|
|
|
|
|
|
| |
This with previous patch fixes a OSAtomic test case.
llvm-svn: 93146
|
|
|
|
| |
llvm-svn: 93141
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
value bindings. Along with a small change to OSAtomicChecker, this
resolves <rdar://problem/7527292> and resolves some long-standing
issues with how values can be bound to the same physical address by
not have the same "key". This change is only a beginning; logically
RegionStore needs to better handle loads from addresses where the
stored value is larger/smaller/different type than the loaded value.
We handle these cases in an approximate fashion now (via
CastRetrievedVal and help in SimpleSValuator), but it could be made
much smarter.
llvm-svn: 93137
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(1) Introduce a new 'BindingKey' class to match 'BindingValue'. This
gives us the flexibility to change the current key value from 'const
MemRegion*' to something more interesting.
(2) Rework additions/removals/lookups from the store to use new
'Remove', 'Add', 'Lookup' utility methods.
No "real" functionality change; just prep work and abstraction.
llvm-svn: 93136
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
incompatible with user-defined literals, specifically with the following form:
0x1p+1
The preprocessing-number token extends only as far as the 'p'; the '+' is not
included. Previously we could get away with this extension as p was an invalid
suffix, but now with user-defined literals, 'p' might well be a valid suffix
and we are forced to consider it as such.
This patch also adds a warning in non-0x C++ modes telling the user that
this extension is incompatible with C++0x that is enabled by default
(previously and with other languages, we warn only with a compliance
option such as -pedantic).
llvm-svn: 93135
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
C++ grammatical constructs that show up in top-level (namespace-level)
declarations, member declarations, template declarations, statements,
expressions, conditions, etc. For example, we now provide a pattern
for
static_cast<type>(expr)
when we can have an expression, or
using namespace identifier;
when we can have a using directive.
Also, improves the results of code completion at the beginning of a
top-level declaration. Previously, we would see value names (function
names, global variables, etc.); now we see types, namespace names,
etc., but no values.
llvm-svn: 93134
|
|
|
|
|
|
| |
RewriteObjC.cpp(4419) : warning C4804: '>' : unsafe use of type 'bool' in operation
llvm-svn: 93124
|
|
|
|
| |
llvm-svn: 93120
|
|
|
|
| |
llvm-svn: 93119
|
|
|
|
|
|
|
|
|
| |
1. Add helper class for sema checks for target attributes
2. Add helper class for codegen of target attributes
As a proof-of-concept - implement msp430's 'interrupt' attribute.
llvm-svn: 93118
|
|
|
|
| |
llvm-svn: 93117
|
|
|
|
| |
llvm-svn: 93114
|
|
|
|
|
|
| |
nicer than passing around two const char*'s.
llvm-svn: 93094
|
|
|
|
| |
llvm-svn: 93088
|
|
|
|
| |
llvm-svn: 93087
|
|
|
|
|
|
| |
-weak_reference_mismatches is not present, it is the default.
llvm-svn: 93086
|
|
|
|
| |
llvm-svn: 93084
|
|
|
|
|
|
|
| |
import other headers within the same framework with the full
framework path, not with a relative include.
llvm-svn: 93083
|
|
|
|
|
|
|
|
|
| |
CallExpr/ObjCMessageExpr can be visited in an "lvalue" context if it
returns a struct temporary. Currently the analyzer doesn't reason
about struct temporary returned by function calls, but we shouldn't
crash here either.
llvm-svn: 93081
|
|
|
|
| |
llvm-svn: 93078
|
|
|
|
| |
llvm-svn: 93077
|
|
|
|
| |
llvm-svn: 93076
|
|
|
|
|
|
| |
lvalue to poke, no functionality change.
llvm-svn: 93075
|
|
|
|
| |
llvm-svn: 93074
|