| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
-fno-exceptions in C++ code. We used to always define __EXCEPTIONS in
C++.
llvm-svn: 83199
|
| |
|
|
| |
llvm-svn: 83195
|
| |
|
|
|
|
| |
BlockDeclRefDecls.
llvm-svn: 83185
|
| |
|
|
|
|
| |
apparently because using directives aren't quite working correctly.
llvm-svn: 83184
|
| |
|
|
|
|
|
|
|
| |
type is a template-id (e.g., basic_ostream<CharT, Traits>) and the
argument type is a class that has a derived class matching the
parameter type. Previously, we were giving up on template argument
deduction too early.
llvm-svn: 83177
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
overload candidates (but not the built-in ones). We still rely on the
underlying built-in semantic analysis to produce the initial
diagnostic, then print the candidates following that diagnostic.
One side advantage of this approach is that we can perform more validation
of C++'s operator overloading with built-in candidates vs. the
semantic analysis for those built-in operators: when there are no
viable candidates, we know to expect an error from the built-in
operator handling code. Otherwise, we are not modeling the built-in
semantics properly within operator overloading. This is checked as:
assert(Result.isInvalid() &&
"C++ binary operator overloading is missing
candidates!");
if (Result.isInvalid())
PrintOverloadCandidates(CandidateSet, /*OnlyViable=*/false);
The assert() catches cases where we're wrong in a +Asserts build. The
"if" makes sure that, if this happens in a production clang
(-Asserts), we still build the proper built-in operator and continue
on our merry way. This is effectively what happened before this
change, but we've added the assert() to catch more flies.
llvm-svn: 83175
|
| |
|
|
|
|
| |
a bad initializer. Fixes pr4274.
llvm-svn: 83169
|
| |
|
|
|
|
| |
since this is not allowed by the embedded c extension spec.
llvm-svn: 83165
|
| |
|
|
| |
llvm-svn: 83153
|
| |
|
|
|
|
| |
a result of type-cast of an ivar in assignment.
llvm-svn: 83150
|
| |
|
|
|
|
|
| |
scheme, we can switch the previous scheme over to using this code
path. There's a bit of simplifications yet to do as well.
llvm-svn: 83138
|
| |
|
|
|
|
| |
unbounded chains of operator-> delegations.
llvm-svn: 83134
|
| |
|
|
|
|
| |
to strike fear into the hearts of CPUs everywhere.
llvm-svn: 83133
|
| |
|
|
|
|
| |
infinit recursion. This patch fixes it. [13.3.1.2]-p2
llvm-svn: 83124
|
| |
|
|
| |
llvm-svn: 83119
|
| |
|
|
|
|
|
|
|
| |
concrete types. Use unqualified desugaring for getAs<> and sundry.
Fix a few users to either not desugar or use qualified desugar, as seemed
appropriate. Removed Type's qualified desugar method, as it was easy
to accidentally use instead of QualType's.
llvm-svn: 83116
|
| |
|
|
|
|
| |
previous fix eliminated this behavior, so bring it back again.
llvm-svn: 83113
|
| |
|
|
| |
llvm-svn: 83112
|
| |
|
|
| |
llvm-svn: 83111
|
| |
|
|
| |
llvm-svn: 83110
|
| |
|
|
|
|
| |
Parameter declarations that differ only in the presence or absence of const and/or volatile are equivalent.
llvm-svn: 83104
|
| |
|
|
| |
llvm-svn: 83101
|
| |
|
|
| |
llvm-svn: 83098
|
| |
|
|
|
|
| |
interfaces.
llvm-svn: 83097
|
| |
|
|
|
|
|
| |
-A NamedDecl reference
-A TypeLoc
llvm-svn: 83095
|
| |
|
|
|
|
| |
protocol references.
llvm-svn: 83094
|
| |
|
|
|
|
|
|
|
| |
This is used only for keeping detailed type source information for protocol references,
it should not participate in the semantics of the type system.
Its protocol list is not canonicalized.
llvm-svn: 83093
|
| |
|
|
| |
llvm-svn: 83092
|
| |
|
|
| |
llvm-svn: 83091
|
| |
|
|
|
|
| |
the TypeClass enum.
llvm-svn: 83090
|
| |
|
|
| |
llvm-svn: 83089
|
| |
|
|
|
|
| |
-Make TypeLoc's constructor public.
llvm-svn: 83088
|
| |
|
|
| |
llvm-svn: 83087
|
| |
|
|
|
|
| |
libexec, *blush*.
llvm-svn: 83086
|
| |
|
|
|
|
|
|
|
|
|
| |
"usual deallocation function" with two arguments. CodeGen will have to
handle this case specifically, since the value for the second argument
(the size of the allocated object) may have to be computed at run
time.
Fixes the Sema part of PR4782.
llvm-svn: 83080
|
| |
|
|
|
|
|
|
| |
had to do with an initialized field when multiple type conversions
are ambiguous but must be treated as user defined conversion for
overload resolution purposes.
llvm-svn: 83079
|
| |
|
|
|
|
|
|
| |
'*((unsigned int *)"????")'
This issue was originally reported via personal email by Thomas Clement!
llvm-svn: 83069
|
| |
|
|
| |
llvm-svn: 83066
|
| |
|
|
|
|
| |
class templates
llvm-svn: 83063
|
| |
|
|
|
|
|
|
|
|
| |
identified with a false positive reported by Thomas Clement. This
involved doing another rewrite of
RegionStoreManager::RemoveDeadBindings(), which phrases the entire
problem of scanning for dead regions as a graph exploration problem.
It is more methodic than the previous implementation.
llvm-svn: 83053
|
| |
|
|
| |
llvm-svn: 83045
|
| |
|
|
|
|
|
|
|
| |
are only specially treated by RegionStore::InvalidateRegion() when
their super region is also invalidated. When this isn't the case,
conjure a new symbol for a FieldRegion. Thanks to Zhongxing Xu and
Daniel Dunbar for pointing out this issue.
llvm-svn: 83043
|
| |
|
|
| |
llvm-svn: 83041
|
| |
|
|
|
|
| |
region has also been invalidated.
llvm-svn: 83040
|
| |
|
|
| |
llvm-svn: 83039
|
| |
|
|
| |
llvm-svn: 83038
|
| |
|
|
| |
llvm-svn: 83037
|
| |
|
|
| |
llvm-svn: 83035
|
| |
|
|
|
|
| |
function.
llvm-svn: 83027
|
| |
|
|
| |
llvm-svn: 83022
|