| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 59611
|
| |
|
|
| |
llvm-svn: 59610
|
| |
|
|
| |
llvm-svn: 59609
|
| |
|
|
| |
llvm-svn: 59608
|
| |
|
|
| |
llvm-svn: 59607
|
| |
|
|
| |
llvm-svn: 59606
|
| |
|
|
|
|
|
|
|
|
|
| |
won't match it:
template<std::size_t StrLen>
bool isName(const char Str[StrLen]) const {
return getLength() == StrLen-1 && !memcmp(getName(), Str, StrLen-1);
}
llvm-svn: 59605
|
| |
|
|
|
|
| |
the code and speeds it up.
llvm-svn: 59604
|
| |
|
|
| |
llvm-svn: 59603
|
| |
|
|
| |
llvm-svn: 59602
|
| |
|
|
|
|
|
|
| |
strings
first. This should allow removal of a bunch of II->getName() calls.
llvm-svn: 59601
|
| |
|
|
| |
llvm-svn: 59600
|
| |
|
|
| |
llvm-svn: 59599
|
| |
|
|
| |
llvm-svn: 59598
|
| |
|
|
| |
llvm-svn: 59597
|
| |
|
|
|
|
|
| |
This also makes it illegal to have bare '%'s in diagnostics. If you
want a % in a diagnostic, use %%.
llvm-svn: 59596
|
| |
|
|
| |
llvm-svn: 59594
|
| |
|
|
|
|
|
|
|
|
| |
const char*'s are now not converted to std::strings when the diagnostic
is formed, we just hold onto their pointer and format as needed.
This commit makes DiagnosticClient::FormatDiagnostic even more of a
mess, I'll fix it in the next commit.
llvm-svn: 59593
|
| |
|
|
| |
llvm-svn: 59591
|
| |
|
|
|
|
| |
Instead of doing that, copy the strings into the diagnostic info.
llvm-svn: 59590
|
| |
|
|
| |
llvm-svn: 59589
|
| |
|
|
|
|
|
|
| |
__builtin_prefetch code to only emit one diagnostic per builtin_prefetch.
While this has nothing to do with the rest of the patch, the code seemed
like overkill when I was updating it.
llvm-svn: 59588
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not "int".
Fix a typo in the promotion of enumeration types that was causing some
integral promotions to look like integral conversions (leading to
extra ambiguities in overload resolution).
Check for "acceptable" overloaded operators based on the types of the
arguments. This is a somewhat odd check that is specified by the
standard, but I can't see why it actually matters: the overload
candidates it suppresses don't seem like they would ever be picked as
the best candidates.
llvm-svn: 59583
|
| |
|
|
| |
llvm-svn: 59579
|
| |
|
|
|
|
|
| |
(a) different versions of gcc (e.g., a suffix '-4.2')
(b) different paths for gcc
llvm-svn: 59578
|
| |
|
|
|
|
| |
Also, took care of Daniel's commments.
llvm-svn: 59575
|
| |
|
|
|
|
|
|
|
|
|
| |
- Add variants of IsNonPragmaNonMacroLexer to accept an IncludeMacroStack entry
(simplifies some uses).
- Use IsNonPragmaNonMacroLexer in Preprocessor::LookupFile.
Performance testing of -Eonly on Cocoa.h shows no performance regression because
of this patch.
llvm-svn: 59574
|
| |
|
|
| |
llvm-svn: 59573
|
| |
|
|
| |
llvm-svn: 59571
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to support operators defined as member functions, e.g.,
struct X {
bool operator==(X&);
};
Overloading with non-member operators is supported, and the special
rules for the implicit object parameter (e.g., the ability for a
non-const *this to bind to an rvalue) are implemented.
This change also refactors and generalizes the code for adding
overload candidates for overloaded operator calls (C++ [over.match.expr]),
both to match the rules more exactly (name lookup of non-member
operators actually ignores member operators) and to make this routine
more reusable for the other overloaded operators.
Testing for the initialization of the implicit object parameter is
very light. More tests will come when we get support for calling
member functions directly (e.g., o.m(a1, a2)).
llvm-svn: 59564
|
| |
|
|
| |
llvm-svn: 59561
|
| |
|
|
|
|
| |
__weak objects.
llvm-svn: 59560
|
| |
|
|
| |
llvm-svn: 59556
|
| |
|
|
|
|
|
|
| |
return Diag(...);
when the function returns bool. This always evaluates to true.
llvm-svn: 59555
|
| |
|
|
| |
llvm-svn: 59554
|
| |
|
|
| |
llvm-svn: 59553
|
| |
|
|
| |
llvm-svn: 59543
|
| |
|
|
|
|
|
|
|
|
| |
interface with protocols.
As soon as we detect duplicate interfaces, discontinue further semantic checks (returning the original interface).
This is now consistent with how we handle protocols (and less error prone in general).
llvm-svn: 59541
|
| |
|
|
| |
llvm-svn: 59539
|
| |
|
|
| |
llvm-svn: 59537
|
| |
|
|
|
|
| |
suite with clang.
llvm-svn: 59536
|
| |
|
|
|
|
|
|
| |
- PR3094.
- No test case, ccc is not really a supported product (llvmc2 already
got this right).
llvm-svn: 59535
|
| |
|
|
| |
llvm-svn: 59534
|
| |
|
|
| |
llvm-svn: 59533
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
DeclRefExprs and BlockDeclRefExprs into a single function
Sema::ActOnDeclarationNameExpr, eliminating a bunch of duplicate
lookup-name-and-check-the-result code.
Note that we still have the three parser entry points for identifiers,
operator-function-ids, and conversion-function-ids, since the parser
doesn't (and shouldn't) know about DeclarationNames. This is a Good
Thing (TM), and there will be more entrypoints coming (e.g., for C++
pseudo-destructor expressions).
llvm-svn: 59527
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
operator+, directly, using the same mechanism as all other special
names.
Removed the "special" identifiers for the overloaded operators from
the identifier table and IdentifierInfo data structure. IdentifierInfo
is back to representing only real identifiers.
Added a new Action, ActOnOperatorFunctionIdExpr, that builds an
expression from an parsed operator-function-id (e.g., "operator
+"). ActOnIdentifierExpr used to do this job, but
operator-function-ids are no longer represented by IdentifierInfo's.
Extended Declarator to store overloaded operator names.
Sema::GetNameForDeclarator now knows how to turn the operator
name into a DeclarationName for the overloaded operator.
Except for (perhaps) consolidating the functionality of
ActOnIdentifier, ActOnOperatorFunctionIdExpr, and
ActOnConversionFunctionExpr into a common routine that builds an
appropriate DeclRefExpr by looking up a DeclarationName, all of the
work on normalizing declaration names should be complete with this
commit.
llvm-svn: 59526
|
| |
|
|
| |
llvm-svn: 59523
|
| |
|
|
| |
llvm-svn: 59522
|
| |
|
|
|
|
| |
whole array to a single value (for example, UnknownVal, UndefinedVal).
llvm-svn: 59521
|
| |
|
|
| |
llvm-svn: 59512
|