Anders Carlsson
26a807d37a
When we're trying to define an implicit virtual destructor, make sure that we have a valid delete operator.
...
llvm-svn: 90156
2009-11-30 21:24:50 +00:00
Eli Friedman
794d4d8127
Fix test on Linux.
...
llvm-svn: 88889
2009-11-16 05:14:40 +00:00
Anders Carlsson
2c9e274e57
If we find a deallocation function in the class scope, but it is a placement function we should not look for a deallocation function in the global scope.
...
llvm-svn: 88851
2009-11-15 16:43:15 +00:00
Anders Carlsson
654e5c7cf8
Diagnose ambiguity of operator delete and operator delete[]. Sebastian, please review.
...
llvm-svn: 88747
2009-11-14 03:17:38 +00:00
Fariborz Jahanian
c3091c9118
Make test more platform independent (per Sebastian's comment).
...
llvm-svn: 86888
2009-11-11 22:45:41 +00:00
Fariborz Jahanian
4e088941ad
Diagnose illegally typed operator new/new[].
...
llvm-svn: 86755
2009-11-10 23:47:18 +00:00
Sebastian Redl
d7b3d7dd79
Remove the Skip parameter from GetTypeForDeclarator and dependents. Take the opportunity to improve an error message and fix PR4498.
...
llvm-svn: 85068
2009-10-25 21:45:37 +00:00
Douglas Gregor
80a6cc5800
Find operators new/delete in base classes. FIXME -= 2;
...
llvm-svn: 83119
2009-09-30 00:03:47 +00:00
Douglas Gregor
98496dc3eb
The C++ delete expression strips cv-qualifiers from the pointed-to type. My previous fix eliminated this behavior, so bring it back again.
...
llvm-svn: 83113
2009-09-29 21:38:53 +00:00
Douglas Gregor
bb3e12fc0b
Handle C++ delete expressions when the overloaded delete operator is a
...
"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
2009-09-29 18:16:17 +00:00
Anders Carlsson
8ab20bb144
Cast the array size expr to a size_t
...
llvm-svn: 82594
2009-09-23 00:37:25 +00:00
Fariborz Jahanian
c34c179f4b
Perform overload resolution when selecting a pointer conversion
...
function for delete of a class expression and issue
good diagnostic when result is ambiguous.
llvm-svn: 81870
2009-09-15 17:21:47 +00:00
Douglas Gregor
0fea62d0c7
For a C++ delete expression where the operand is of class type that
...
has a single conversion to pointer-to-object type, implicitly convert
to that pointer-to-object type (C++ [expr.delete]p1).
llvm-svn: 81401
2009-09-09 23:39:55 +00:00
Anders Carlsson
2418712039
Fix an off by one error when trying to perform copy initialization of operator new and operator delete arguments. Sebastian, please review.
...
llvm-svn: 72670
2009-05-31 19:49:47 +00:00
Sebastian Redl
4d226cf45f
When there are any member new operators, global versions aren't looked up at all.
...
llvm-svn: 71780
2009-05-14 18:11:41 +00:00
Douglas Gregor
ac1fb65d0c
Make sure to use RequireCompleteType rather than testing for
...
incomplete types. RequireCompleteType is needed when the type may be
completed by instantiating a template.
llvm-svn: 67643
2009-03-24 19:52:54 +00:00
Daniel Dunbar
a45cf5b6b0
Rename clang to clang-cc.
...
Tests and drivers updated, still need to shuffle dirs.
llvm-svn: 67602
2009-03-24 02:24:46 +00:00
Sebastian Redl
1df2bbe7f9
Update new expression to make use of Declarator::getSourceRange().
...
References are not objects; implement this in Type::isObjectType().
llvm-svn: 64152
2009-02-09 18:24:27 +00:00
Sebastian Redl
2175b6a767
Make one expected-diag directive match exactly one actual diagnostic.
...
This uncovers some bugs, so several test cases now fail.
llvm-svn: 64025
2009-02-07 19:52:04 +00:00
Douglas Gregor
dd430f7ec9
Centralize error reporting of improper uses of incomplete types in the
...
new DiagnoseIncompleteType. It provides additional information about
struct/class/union/enum types when possible, either by pointing to the
forward declaration of that type or by pointing to the definition (if
we're in the process of defining that type).
Fixes <rdar://problem/6500531>.
llvm-svn: 62521
2009-01-19 19:26:10 +00:00
Sebastian Redl
33a3101d43
Code cleanup in new handling.
...
llvm-svn: 60557
2008-12-04 22:20:51 +00:00
Sebastian Redl
f84512a360
Fix some diagnostics and enhance test cases. Now tests member new and ambiguous overloads.
...
llvm-svn: 60542
2008-12-04 17:24:46 +00:00
Sebastian Redl
faf6808e7a
Overload resolution for the operator new function. Member version is still untested.
...
llvm-svn: 60503
2008-12-03 20:26:15 +00:00
Sebastian Redl
db36b9b962
Make the parser handle ::new and ::delete correctly.
...
llvm-svn: 60421
2008-12-02 16:35:44 +00:00
Sebastian Redl
351bb78a10
Handle new by passing the Declaration to the Action, not a processed type.
...
llvm-svn: 60413
2008-12-02 14:43:59 +00:00
Douglas Gregor
3ff3cf5f21
Test another error message, make sure to verify C++ new and delete tests
...
llvm-svn: 60007
2008-11-25 04:08:05 +00:00
Chris Lattner
03c4041cb5
make the 'to match this' diagnostic a note.
...
llvm-svn: 59921
2008-11-23 23:17:07 +00:00
Sebastian Redl
bd150f431e
Implementation of new and delete parsing and sema.
...
This version uses VLAs to represent arrays. I'll try an alternative way next, but I want this safe first.
llvm-svn: 59835
2008-11-21 19:14:01 +00:00