| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 103250
|
| |
|
|
|
|
| |
I'm on a roll.
llvm-svn: 103249
|
| |
|
|
| |
llvm-svn: 103248
|
| |
|
|
| |
llvm-svn: 103247
|
| |
|
|
|
|
|
|
|
|
|
| |
to be algorithmically faster and avoid an std::map. This routine
basically boils down to finding the nearest common ancestor in a
tree, and we (implicitly) have information about nesting depth,
use it!
This wraps up rdar://7948633 - SourceManager::isBeforeInTranslationUnit has poor performance
llvm-svn: 103239
|
| |
|
|
|
|
| |
the right type. It turns out that the code was already doing this.
llvm-svn: 103238
|
| |
|
|
|
|
| |
like a good idea at the time.
llvm-svn: 103237
|
| |
|
|
| |
llvm-svn: 103236
|
| |
|
|
|
|
|
|
| |
method to be correct. Right now it correctly computes the cache, then
goes ahead and computes the result the hard way, then asserts that they
match. Next I'll actually turn it on.
llvm-svn: 103231
|
| |
|
|
|
|
| |
template arguments.
llvm-svn: 103221
|
| |
|
|
|
|
|
|
|
|
|
|
| |
are reference-compatible, reference-related, etc., do not complete the
type of the reference itself because it is not necessary to determine
well-formedness of the program. Complete the type that we are binding
to, since that can affect whether we know about a derived-to-base
conversion.
Fixes PR7080.
llvm-svn: 103220
|
| |
|
|
|
|
| |
casts, but still require the (casted) type to be a pointer. Fixes PR5685.
llvm-svn: 103216
|
| |
|
|
|
|
| |
scope. Thanks to Steven Watanabe for correcting me.
llvm-svn: 103210
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
available_externally linkage, since they may not have been given a
strong definition in another translation unit. Without this patch, the
following test case fails to link with a GCC-compiled libstdc++:
#include <sstream>
int main() { std::basic_stringbuf<char> bs; }
Fixes the last problem with the Boost.IO library.
llvm-svn: 103208
|
| |
|
|
| |
llvm-svn: 103204
|
| |
|
|
|
|
|
| |
us to find local variables, too. Fixes the last remaining
Boost.Rational failure.
llvm-svn: 103203
|
| |
|
|
| |
llvm-svn: 103198
|
| |
|
|
| |
llvm-svn: 103197
|
| |
|
|
| |
llvm-svn: 103192
|
| |
|
|
|
|
| |
Fixes rdar://problem/4232969, or at least the clang parts of it.
llvm-svn: 103191
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
if/switch/while/do/for statements. Previously, we would end up either:
(1) Forgetting to destroy temporaries created in the condition (!),
(2) Destroying the temporaries created in the condition *before*
converting the condition to a boolean value (or, in the case of a
switch statement, to an integral or enumeral value), or
(3) In a for statement, destroying the condition's temporaries at
the end of the increment expression (!).
We now destroy temporaries in conditions at the right times. This
required some tweaking of the Parse/Sema interaction, since the parser
was building full expressions too early in many places.
Fixes PR7067.
llvm-svn: 103187
|
| |
|
|
|
|
| |
C++ object properties. (still radar 7468090).
llvm-svn: 103182
|
| |
|
|
|
|
| |
which breaks clang-i686-xp-msvc9 test-clang.
llvm-svn: 103180
|
| |
|
|
|
|
|
|
|
|
| |
matching gcc compiler. Fixes #include_next <...> shenanigans that lead to
file-not-found failures with <cstddef> on libstdc++ 4.3.[012].
Updated C++ include header search paths for various Debian/Ubuntu and Fedora
linux distros.
llvm-svn: 103177
|
| |
|
|
|
|
|
|
| |
inlineable. That header file has to be TypeLoc.h, which means that
TypeLoc.h needs to depend on Decl.h because TypeSourceInfo doesn't
have its own header. That could be remedied, though.
llvm-svn: 103176
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
"bottom-up" when implicit casts and comparisons are inserted, compute them
"top-down" when the full expression is finished. Makes it easier to
coordinate warnings and thus implement -Wconversion for signedness
conversions without double-warning with -Wsign-compare. Also makes it possible
to realize that a signedness conversion is okay because the context is
performing the inverse conversion. Also simplifies some logic that was
trying to calculate the ultimate comparison/result type and getting it wrong.
Also fixes a problem with the C++ explicit casts which are often "implemented"
in the AST with a series of implicit cast expressions.
llvm-svn: 103174
|
| |
|
|
|
|
|
| |
an enum in the enum decl itself. Use some spare bits from TagDecl for this
purpose.
llvm-svn: 103173
|
| |
|
|
|
|
| |
fixing PR7063.
llvm-svn: 103171
|
| |
|
|
|
|
| |
in the near future.
llvm-svn: 103169
|
| |
|
|
| |
llvm-svn: 103168
|
| |
|
|
|
|
|
| |
float -> double (which happens because they are modelled as int(...)
functions), and add a testcase for isinf.
llvm-svn: 103167
|
| |
|
|
|
|
|
| |
this is generating correct but suboptimal (extra extend to double)
code for the float case. Will investigate next.
llvm-svn: 103166
|
| |
|
|
| |
llvm-svn: 103165
|
| |
|
|
|
|
|
| |
building and passing arguments to cc1 layer when setting values to their
defaults.
llvm-svn: 103162
|
| |
|
|
|
|
| |
after inlining post-call checking shouldn't be done.
llvm-svn: 103161
|
| |
|
|
|
|
|
| |
flag now, and can be used with other analyses. Only turned it on for C++
methods for now.
llvm-svn: 103160
|
| |
|
|
|
|
|
|
|
| |
different tag kind ("struct" vs. "class") than the primary template,
which has an affect on access control.
Should fix the last remaining Boost.Accumulors failure.
llvm-svn: 103144
|
| |
|
|
|
|
|
|
|
|
| |
SourceManager::isBeforeInTranslationUnit() where the
method will sometimes return different results for the same input SourceLocations. I haven't
unraveled this method completely yet, so this truly is a workaround until a better fix comes
along.
llvm-svn: 103143
|
| |
|
|
|
|
| |
picking a more consistent pattern.
llvm-svn: 103142
|
| |
|
|
| |
llvm-svn: 103141
|
| |
|
|
|
|
|
|
|
| |
except it only skips implicit casts.
Also fix ObjCImplicitGetterSetterRefExpr's child_begin to skip the base expression
if it's actually a type reference (which you get with static property references).
llvm-svn: 103132
|
| |
|
|
|
|
|
|
|
| |
function attributes like byval get applied to the function
definition. This fixes PR7058 and makes i386 llvm/clang bootstrap
pass all the same tests as x86-64 bootstrap for me (the llvmc
tests still fail in both).
llvm-svn: 103131
|
| |
|
|
|
|
|
|
|
| |
provide a note that shows where the copy-assignment operator was
needed. We used to have this, but I broke it during refactoring.
Finishes PR6999.
llvm-svn: 103127
|
| |
|
|
|
|
|
| |
of properties which are of C++ objects. Code Gen to follow
(Radar 7468090).
llvm-svn: 103123
|
| |
|
|
|
|
|
|
| |
reference type, make sure that the initializer we build is the
of the appropriate type for the *reference*, not for the thing that it
refers to. Fixes PR7050.
llvm-svn: 103115
|
| |
|
|
| |
llvm-svn: 103090
|
| |
|
|
|
|
|
|
| |
destructors, place the __cxa_atexit call after the __cxa_guard_release
call, mimicking GCC/LLVM-GCC behavior. Noticed while debugging
something related.
llvm-svn: 103088
|
| |
|
|
|
|
|
| |
with no whitespace. This will allow statements to be referred to in
attribute TableGen files.
llvm-svn: 103087
|
| |
|
|
|
|
|
| |
whitespace which makes this patch unreadable. Will recommit without the
whitespace.
llvm-svn: 103086
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
ParseOptionalCXXScopeSpecifier() only annotates the subset of
template-ids which are not subject to lexical ambiguity. Add support
for the more general case in ParseUnqualifiedId() to handle cases
such as A::template B().
Also improve some diagnostic locations.
Fixes PR7030, from Alp Toker!
llvm-svn: 103081
|