| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
so that we can parse a C++ type-specifier-seq
llvm-svn: 58854
|
|
|
|
|
|
|
| |
When allocating an array for ParamInfo, the "decl->getNumParams()" call was used, but this will return 0 since it checks ParamInfo (which isn't yet defined and is null).
The result was that ParamInfo got an array of zero length to hold the ParmVarDecls.
llvm-svn: 58850
|
|
|
|
|
|
|
|
| |
void f() {
int +; // crash here
}
llvm-svn: 58846
|
|
|
|
|
|
|
|
|
| |
available, things get much simplified.
One addition is that CompoundLiteralExpr can appear both in rvalue and lvalue
context.
llvm-svn: 58837
|
|
|
|
| |
llvm-svn: 58833
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
operators. For example, one can now write "x + y" where x or y is a
class or enumeration type, and Clang will perform overload resolution
for "+" based on the overloaded operators it finds.
The other kinds of overloadable operators in C++ will follow this same
approach.
Three major issues remain:
1) We don't find member operators
2) Since we don't have user-defined conversion operators, we can't
call any of the built-in overloaded operators in C++ [over.built].
3) Once we've done the semantic checks, we drop the overloaded
operator on the floor; it doesn't get into the AST at all.
llvm-svn: 58821
|
|
|
|
|
|
|
|
|
| |
operators in C++. Overloaded operators can be called directly via
their operator-function-ids, e.g., "operator+(foo, bar)", but we don't
yet implement the semantics of operator overloading to handle, e.g.,
"foo + bar".
llvm-svn: 58817
|
|
|
|
| |
llvm-svn: 58806
|
|
|
|
| |
llvm-svn: 58804
|
|
|
|
| |
llvm-svn: 58802
|
|
|
|
| |
llvm-svn: 58771
|
|
|
|
| |
llvm-svn: 58770
|
|
|
|
| |
llvm-svn: 58769
|
|
|
|
|
|
|
|
|
|
|
| |
Implicit declaration of destructors (when necessary).
Extended Declarator to store information about parsed constructors
and destructors; this will be extended to deal with declarators that
name overloaded operators (e.g., "operator +") and user-defined
conversion operators (e.g., "operator int").
llvm-svn: 58767
|
|
|
|
| |
llvm-svn: 58762
|
|
|
|
| |
llvm-svn: 58758
|
|
|
|
|
|
| |
initialization of non-aggregates with initializer lists.
llvm-svn: 58757
|
|
|
|
|
|
|
|
| |
duplication in the handling of copy-initialization by constructor,
which occurs both for initialization of a declaration and for
overloading. The initialization code is due for some refactoring.
llvm-svn: 58756
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for constructor initializations, e.g.,
class A { };
class B : public A {
int m;
public:
B() : A(), m(17) { };
};
llvm-svn: 58749
|
|
|
|
| |
llvm-svn: 58716
|
|
|
|
| |
llvm-svn: 58705
|
|
|
|
| |
llvm-svn: 58704
|
|
|
|
|
|
| |
Use distinct diagnostics for distinct errors.
llvm-svn: 58700
|
|
|
|
|
|
| |
'super'. Remove ObjCThis from PredefinedExpr
llvm-svn: 58698
|
|
|
|
|
|
| |
expression. Remove CXXThis from PredefinedExpr
llvm-svn: 58695
|
|
|
|
|
|
| |
default arguments
llvm-svn: 58692
|
|
|
|
|
|
| |
correcting my bogus assertion about it already being handled
llvm-svn: 58691
|
|
|
|
| |
llvm-svn: 58689
|
|
|
|
|
|
| |
cocoa.mm test failures.
llvm-svn: 58685
|
|
|
|
|
|
| |
now).
llvm-svn: 58681
|
|
|
|
| |
llvm-svn: 58680
|
|
|
|
| |
llvm-svn: 58666
|
|
|
|
|
|
| |
< FileIDs.size() && "Invalid FileID!", file c:\cygwin\home\Administrator\llvm\tools\clang\include\clang/Basic/SourceManager.h, line 513
llvm-svn: 58654
|
|
|
|
|
|
| |
Fix Plist output.
llvm-svn: 58652
|
|
|
|
|
|
| |
already implemented
llvm-svn: 58649
|
|
|
|
| |
llvm-svn: 58647
|
|
|
|
| |
llvm-svn: 58646
|
|
|
|
|
|
| |
X x(5, 7);
llvm-svn: 58641
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cope with the case where a user-defined conversion is actually a copy
construction, and therefore can be compared against other standard
conversion sequences. While I called this a hack before, now I'm
convinced that it's the right way to go.
Compare overloads based on derived-to-base conversions that invoke
copy constructors.
Suppress user-defined conversions when attempting to call a
user-defined conversion.
llvm-svn: 58629
|
|
|
|
|
|
|
|
|
|
|
| |
when appropriate.
Conversions for class types now make use of copy constructors. I've
replaced the egregious hack allowing class-to-class conversions with a
slightly less egregious hack calling these conversions standard
conversions (for overloading reasons).
llvm-svn: 58622
|
|
|
|
| |
llvm-svn: 58613
|
|
|
|
|
|
|
|
|
|
|
| |
reference-collapsing.
Implement diagnostic for formation of a reference to cv void.
Drop cv-qualifiers added to a reference type when the reference type
comes from a typedef.
llvm-svn: 58612
|
|
|
|
|
|
| |
wchar_t types. Fixes recent breakage on Linux.
llvm-svn: 58609
|
|
|
|
|
|
|
| |
the designator corresponding to it, otherwise Sema and later parsing will
get confused.
llvm-svn: 58603
|
|
|
|
| |
llvm-svn: 58602
|
|
|
|
| |
llvm-svn: 58597
|
|
|
|
| |
llvm-svn: 58596
|
|
|
|
|
|
| |
- Prepare AnonPointeeRegioin for later use.
llvm-svn: 58595
|
|
|
|
| |
llvm-svn: 58570
|
|
|
|
|
|
|
|
|
|
|
| |
sets the whole struct to Unknown. Then we cannot assume the V passed to
BindStruct() is always a CompoundVal. When it is an UnknownVal, we call
BindStructToVal(UnknownVal).
2. Change the signature of InitializeStructToUndefined() to BindStructToVal()
to reuse the code.
llvm-svn: 58564
|