Граф коммитов

284 Коммитов

Автор SHA1 Сообщение Дата
Ted Kremenek 83df2d2301 Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60864 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-11 00:20:13 +00:00
Ted Kremenek 4dc506cbbc Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60819 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-10 00:50:24 +00:00
Sebastian Redl 8b9ad38dab Fill in C++ status table for expressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60763 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-09 14:40:01 +00:00
Sebastian Redl 377fa5d532 Fill in some parts of cxx_status.html
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60699 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 16:24:08 +00:00
Sebastian Redl 5eb1969ccc Parsing new and delete is now complete.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60425 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-02 17:22:40 +00:00
Sebastian Redl cee63fbf0e Handle new by passing the Declaration to the Action, not a processed type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60413 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-02 14:43:59 +00:00
Nuno Lopes ab4b2efea7 add note about running the test suite with valgrind
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60029 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-25 15:46:06 +00:00
Douglas Gregor 01f0fcd3ea Update C++ status
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59735 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-20 16:46:32 +00:00
Douglas Gregor 106c6eb3f1 Implement the rest of C++ [over.call.object], which permits the object
being called to be converted to a reference-to-function,
pointer-to-function, or reference-to-pointer-to-function. This is done
through "surrogate" candidate functions that model the conversions
from the object to the function (reference/pointer) and the
conversions in the arguments.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59674 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-19 22:57:39 +00:00
Douglas Gregor f9eb905197 Support for calling overloaded function call operators (operator())
with function call syntax, e.g.,

  Functor f;
  f(x, y);

This is the easy part of handling calls to objects of class type 
(C++ [over.call.object]). The hard part (coping with conversions from
f to function pointer or reference types) will come later. Nobody uses
that stuff anyway, right? :)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59663 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-19 21:05:33 +00:00
Douglas Gregor 337c6b9f5d Support overloading of the subscript operator[], including support for
built-in operator candidates. Test overloading of '&' and ','.

In C++, a comma expression is an lvalue if its right-hand
subexpression is an lvalue. Update Expr::isLvalue accordingly.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59643 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-19 17:17:41 +00:00
Douglas Gregor 7425373618 Added operator overloading for unary operators, post-increment, and
post-decrement, including support for generating all of the built-in
operator candidates for these operators. 

C++ and C have different rules for the arguments to the builtin unary
'+' and '-'. Implemented both variants in Sema::ActOnUnaryOp.

In C++, pre-increment and pre-decrement return lvalues. Update
Expr::isLvalue accordingly.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59638 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-19 15:42:04 +00:00
Ted Kremenek d064191a2d Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59591 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-19 05:46:43 +00:00
Daniel Dunbar 1f6572c67a Add some quick notes on the clang tests and running the LLVM test
suite with clang.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59536 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18 17:56:21 +00:00
Ted Kremenek 5efd06853e Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59503 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18 07:27:02 +00:00
Ted Kremenek d0b05a5d07 Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59457 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17 19:26:13 +00:00
Ted Kremenek 0501e22c07 Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59353 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15 04:57:19 +00:00
Sebastian Redl 669d5d74b8 Implement parsing and semantic checking of the 'mutable' keyword.
Thanks to Doug for the review. Actual effects of mutable to follow.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59331 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14 23:42:31 +00:00
Daniel Dunbar 2f064176f4 Fix some validation errors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59272 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13 23:01:34 +00:00
Daniel Dunbar 0d7c3f954b Start a "hacking" page with some simple notes on getting started
developing clang.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59270 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13 22:49:41 +00:00
Ted Kremenek d6b8cca34d Revert to older checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59209 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13 01:30:19 +00:00
Ted Kremenek 24a5815864 Update checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59206 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13 01:23:50 +00:00
Ted Kremenek 1e5bb3c12a Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59195 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-12 23:26:57 +00:00
Sebastian Redl c42e118384 Implement C++ 'typeid' parsing and sema.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59042 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-11 11:37:55 +00:00
Douglas Gregor 904eed3f61 Basic support for taking the address of an overloaded function
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59000 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10 20:40:00 +00:00
Sebastian Redl 9324e58a23 Update C++ status: class support improved due to nested name parsing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58932 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-09 11:32:32 +00:00
Sebastian Redl ab963c6221 Update C++ status to reflect parser capabilities for chapter 9 (classes). Slightly extend the class parser test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58909 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-08 15:40:37 +00:00
Sebastian Redl ffb5b009f8 Update C++ status: dynamic_cast is sema-complete.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58907 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-08 14:43:13 +00:00
Cedric Venet d60b92760f Use css style instead of hard coded color in cxx_status. No visible change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58867 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-07 22:24:44 +00:00
Ted Kremenek b737e86bad Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58864 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-07 20:55:59 +00:00
Douglas Gregor ed1eedd5c4 Update C++ status
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58862 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-07 20:16:04 +00:00
Douglas Gregor eaebc75ef6 Initial, rudimentary implementation of operator overloading for binary
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.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58821 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06 23:29:22 +00:00
Douglas Gregor 1cd1b1e987 Parsing, ASTs, and semantic analysis for the declaration of overloaded
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".



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58817 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06 22:13:31 +00:00
Ted Kremenek ca35512082 Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58776 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05 22:47:25 +00:00
Douglas Gregor 42a552f820 Parsing, representation, and preliminary semantic analysis of destructors.
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").



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58767 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05 20:51:48 +00:00
Douglas Gregor 7ad8390f79 Initial implementation of parsing, semantic analysis, and AST-building
for constructor initializations, e.g.,

  class A { };
  class B : public A { 
    int m;
  public:
    B() : A(), m(17) { };
  };





git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58749 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05 04:29:56 +00:00
Daniel Dunbar dac74157b1 Remove stray character.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58713 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04 18:44:31 +00:00
Douglas Gregor 456f82da3f Fine-grained C++ status page
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58699 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04 15:52:45 +00:00
Ted Kremenek 7cf95092bf Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58672 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04 01:24:32 +00:00
Ted Kremenek 3c1847f82a Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58658 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04 00:03:24 +00:00
Daniel Dunbar 4fd7ffe4c9 Clarify performance experiments description based on feedback from
Eric C, thanks!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58634 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-03 20:03:58 +00:00
Chris Lattner 09d84babc2 minor tweaks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58545 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-01 01:46:51 +00:00
Daniel Dunbar 8fa98450f7 Grammar tweaks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58544 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-01 01:24:31 +00:00
Daniel Dunbar 2336d1fa5f Add recent timing results to web page.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58542 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-01 01:14:36 +00:00
Ted Kremenek 0239f7f33a Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58473 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-30 23:41:37 +00:00
Daniel Dunbar c3f631f4d7 Fix specification references link.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58412 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-30 00:53:12 +00:00
Ted Kremenek e1919d41a3 Update checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58369 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-29 06:19:03 +00:00
Ted Kremenek df1736dc86 Update checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58289 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27 22:42:11 +00:00
Ted Kremenek 8dc53930ac Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58125 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 22:34:49 +00:00
Daniel Dunbar b394d1ca7d Add ViewVC link from web page.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58119 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 21:31:50 +00:00