Commit Graph

396 Commits

Author SHA1 Message Date
Douglas Gregor ae5e28578c Update C++ status and add a few more tests of overloading for member function calls
llvm-svn: 62121
2009-01-12 23:20:38 +00:00
Douglas Gregor f4d332797b Finished semantic analysis of anonymous unions in C++.
Duplicate-member checking within classes is still a little messy, and
anonymous unions are still completely broken in C. We'll need to unify
the handling of fields in C and C++ to make this code applicable in
both languages.

llvm-svn: 61878
2009-01-07 19:46:03 +00:00
Ted Kremenek 4cfd63b5a4 Update checker build.
llvm-svn: 61843
2009-01-07 01:10:24 +00:00
Douglas Gregor d7c4d984d0 Parser support for C++ using directives, from Piotr Rak
llvm-svn: 61486
2008-12-30 03:27:21 +00:00
Sebastian Redl 58097c79c2 Fill in C++ status table for statements.
llvm-svn: 61457
2008-12-28 17:18:13 +00:00
Sebastian Redl e10c2c32af Implement checks for bool in increment and decrement.
llvm-svn: 61275
2008-12-20 09:35:34 +00:00
Ted Kremenek ab66b87f7f Updated checker build.
llvm-svn: 61273
2008-12-20 02:16:48 +00:00
Ted Kremenek dde7df9de2 Updated checker build.
llvm-svn: 61233
2008-12-19 00:19:19 +00:00
Ted Kremenek a1fd586dca Updated checker build.
llvm-svn: 61173
2008-12-17 23:55:41 +00:00
Ted Kremenek be3864ae6f Updated checker build.
llvm-svn: 61151
2008-12-17 21:02:35 +00:00
Douglas Gregor dd12c786a0 Added a test for default arguments added to out-of-line member
functions. They work except that name lookup within the default
arguments needs to be deferred until the class definition is complete
(see FIXME in the test).

llvm-svn: 61059
2008-12-16 00:08:34 +00:00
Ted Kremenek d2f9cd1cbd Updated checker build.
llvm-svn: 61002
2008-12-14 01:25:59 +00:00
Ted Kremenek 0bc1320d95 Updated checker build.
llvm-svn: 60864
2008-12-11 00:20:13 +00:00
Ted Kremenek a30391c31f Updated checker build.
llvm-svn: 60819
2008-12-10 00:50:24 +00:00
Sebastian Redl e0c2affc5e Fill in C++ status table for expressions.
llvm-svn: 60763
2008-12-09 14:40:01 +00:00
Sebastian Redl 82639aff7b Fill in some parts of cxx_status.html
llvm-svn: 60699
2008-12-08 16:24:08 +00:00
Sebastian Redl 5c6ebcc198 Parsing new and delete is now complete.
llvm-svn: 60425
2008-12-02 17:22:40 +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
Nuno Lopes 6cdcbd1f95 add note about running the test suite with valgrind
llvm-svn: 60029
2008-11-25 15:46:06 +00:00
Douglas Gregor 8e3e16ed2e Update C++ status
llvm-svn: 59735
2008-11-20 16:46:32 +00:00
Douglas Gregor ab7897ac44 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.

llvm-svn: 59674
2008-11-19 22:57:39 +00:00
Douglas Gregor 91cea0ad1e 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? :)

llvm-svn: 59663
2008-11-19 21:05:33 +00:00
Douglas Gregor 40412acc02 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.

llvm-svn: 59643
2008-11-19 17:17:41 +00:00
Douglas Gregor d08452f60a 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.

llvm-svn: 59638
2008-11-19 15:42:04 +00:00
Ted Kremenek 29704928b7 Updated checker build.
llvm-svn: 59591
2008-11-19 05:46:43 +00:00
Daniel Dunbar bf45c9a4e4 Add some quick notes on the clang tests and running the LLVM test
suite with clang.

llvm-svn: 59536
2008-11-18 17:56:21 +00:00
Ted Kremenek ee4fa9cfbb Updated checker build.
llvm-svn: 59503
2008-11-18 07:27:02 +00:00
Ted Kremenek f9f58f085d Updated checker build.
llvm-svn: 59457
2008-11-17 19:26:13 +00:00
Ted Kremenek 9f748e23e3 Updated checker build.
llvm-svn: 59353
2008-11-15 04:57:19 +00:00
Sebastian Redl ccdfabab35 Implement parsing and semantic checking of the 'mutable' keyword.
Thanks to Doug for the review. Actual effects of mutable to follow.

llvm-svn: 59331
2008-11-14 23:42:31 +00:00
Daniel Dunbar 62efa23518 Fix some validation errors.
llvm-svn: 59272
2008-11-13 23:01:34 +00:00
Daniel Dunbar ed40bc19c9 Start a "hacking" page with some simple notes on getting started
developing clang.

llvm-svn: 59270
2008-11-13 22:49:41 +00:00
Ted Kremenek 83844100fb Revert to older checker build.
llvm-svn: 59209
2008-11-13 01:30:19 +00:00
Ted Kremenek d0e32791d5 Update checker build.
llvm-svn: 59206
2008-11-13 01:23:50 +00:00
Ted Kremenek e9c16a6a79 Updated checker build.
llvm-svn: 59195
2008-11-12 23:26:57 +00:00
Sebastian Redl c470476420 Implement C++ 'typeid' parsing and sema.
llvm-svn: 59042
2008-11-11 11:37:55 +00:00
Douglas Gregor cd695e500d Basic support for taking the address of an overloaded function
llvm-svn: 59000
2008-11-10 20:40:00 +00:00
Sebastian Redl e0b2b1bf8c Update C++ status: class support improved due to nested name parsing.
llvm-svn: 58932
2008-11-09 11:32:32 +00:00
Sebastian Redl f4485de48a Update C++ status to reflect parser capabilities for chapter 9 (classes). Slightly extend the class parser test.
llvm-svn: 58909
2008-11-08 15:40:37 +00:00
Sebastian Redl 2e133e47aa Update C++ status: dynamic_cast is sema-complete.
llvm-svn: 58907
2008-11-08 14:43:13 +00:00
Cedric Venet 571c662350 Use css style instead of hard coded color in cxx_status. No visible change.
llvm-svn: 58867
2008-11-07 22:24:44 +00:00
Ted Kremenek 47a6235491 Updated checker build.
llvm-svn: 58864
2008-11-07 20:55:59 +00:00
Douglas Gregor 60e64cfc43 Update C++ status
llvm-svn: 58862
2008-11-07 20:16:04 +00:00
Douglas Gregor 7d5fc7e28b 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.

llvm-svn: 58821
2008-11-06 23:29:22 +00:00
Douglas Gregor 11d0c4c098 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".

llvm-svn: 58817
2008-11-06 22:13:31 +00:00
Ted Kremenek efc44cbf1f Updated checker build.
llvm-svn: 58776
2008-11-05 22:47:25 +00:00
Douglas Gregor 831c93f6c0 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").

llvm-svn: 58767
2008-11-05 20:51:48 +00:00
Douglas Gregor e8381c00eb 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) { };
  };

llvm-svn: 58749
2008-11-05 04:29:56 +00:00
Daniel Dunbar 40346506f1 Remove stray character.
llvm-svn: 58713
2008-11-04 18:44:31 +00:00
Douglas Gregor 242ee9dfae Fine-grained C++ status page
llvm-svn: 58699
2008-11-04 15:52:45 +00:00
Ted Kremenek 307b2c4078 Updated checker build.
llvm-svn: 58672
2008-11-04 01:24:32 +00:00
Ted Kremenek a3199323fe Updated checker build.
llvm-svn: 58658
2008-11-04 00:03:24 +00:00
Daniel Dunbar 925dc26d51 Clarify performance experiments description based on feedback from
Eric C, thanks!

llvm-svn: 58634
2008-11-03 20:03:58 +00:00
Chris Lattner ce149def9d minor tweaks.
llvm-svn: 58545
2008-11-01 01:46:51 +00:00
Daniel Dunbar 05f13bcc2c Grammar tweaks.
llvm-svn: 58544
2008-11-01 01:24:31 +00:00
Daniel Dunbar 13569f8dd6 Add recent timing results to web page.
llvm-svn: 58542
2008-11-01 01:14:36 +00:00
Ted Kremenek 883af75f01 Updated checker build.
llvm-svn: 58473
2008-10-30 23:41:37 +00:00
Daniel Dunbar def9076430 Fix specification references link.
llvm-svn: 58412
2008-10-30 00:53:12 +00:00
Ted Kremenek f521e4a90b Update checker build.
llvm-svn: 58369
2008-10-29 06:19:03 +00:00
Ted Kremenek 02f9fd4a6c Update checker build.
llvm-svn: 58289
2008-10-27 22:42:11 +00:00
Ted Kremenek bb913f2369 Updated checker build.
llvm-svn: 58125
2008-10-24 22:34:49 +00:00
Daniel Dunbar c157586598 Add ViewVC link from web page.
llvm-svn: 58119
2008-10-24 21:31:50 +00:00
Ted Kremenek dfaeaed0f6 Updated checker build.
llvm-svn: 58027
2008-10-23 02:50:14 +00:00
Ted Kremenek a08a05e541 Updated checker build.
llvm-svn: 58005
2008-10-22 21:53:52 +00:00
Ted Kremenek 7c3a364355 Update server URL for checker build.
llvm-svn: 57981
2008-10-22 15:33:19 +00:00
Ted Kremenek 518b17e8f3 Updated checker build.
llvm-svn: 57931
2008-10-21 21:56:56 +00:00
Ted Kremenek 9667b7c9c0 Updated checker build
llvm-svn: 57890
2008-10-21 04:32:44 +00:00
Ted Kremenek e76edcfc65 Updated checker build
llvm-svn: 57808
2008-10-20 06:58:23 +00:00
Ted Kremenek cfb049c832 Updated checker build
llvm-svn: 57775
2008-10-18 21:03:40 +00:00
Ted Kremenek 43a9d7f3f0 Updated checker build.
llvm-svn: 57764
2008-10-18 05:12:17 +00:00
Ted Kremenek 944375abae Update checker build.
llvm-svn: 57303
2008-10-08 18:32:06 +00:00
Ted Kremenek 3b670d1a0c Updated checker build.
llvm-svn: 57176
2008-10-06 15:46:11 +00:00
Ted Kremenek d1036be0ef Updated checker build.
llvm-svn: 57045
2008-10-04 06:53:56 +00:00
Ted Kremenek e8ce52e44b Updated checker build.
llvm-svn: 56916
2008-10-01 05:27:13 +00:00
Ted Kremenek f56afd7cdd Update checker build.
llvm-svn: 56909
2008-10-01 02:03:02 +00:00
Ted Kremenek b6c459ea13 Updated checker build.
llvm-svn: 56863
2008-09-30 17:53:26 +00:00
Ted Kremenek 7273d01dd4 Updated checker build.
llvm-svn: 56819
2008-09-29 23:33:12 +00:00
Ted Kremenek 01c61b9b2a Update checker build.
llvm-svn: 56804
2008-09-29 21:24:37 +00:00
Ted Kremenek c1048153fe Updated checker build.
llvm-svn: 56774
2008-09-28 17:25:56 +00:00
Ted Kremenek 928f484c2d Updated checker build.
llvm-svn: 56701
2008-09-26 22:00:01 +00:00
Ted Kremenek a69637ba6d Updated checker build.
llvm-svn: 56666
2008-09-26 17:04:34 +00:00
Ted Kremenek 894036d2cd Updated checker build.
llvm-svn: 56633
2008-09-26 00:50:00 +00:00
Ted Kremenek 26971ffcc5 Update checker build.
llvm-svn: 56562
2008-09-24 17:45:52 +00:00
Ted Kremenek 90b91de03b Updated checker build.
llvm-svn: 56484
2008-09-23 00:30:34 +00:00
Ted Kremenek dd186c638e Updated checker build
llvm-svn: 56430
2008-09-22 06:11:08 +00:00
Ted Kremenek 37202acdff Update checker build
llvm-svn: 56367
2008-09-19 20:20:09 +00:00
Ted Kremenek 9a7e2efec0 Updated checker build.
llvm-svn: 56333
2008-09-19 05:14:13 +00:00
Ted Kremenek 45a928b956 Updated checker build.
llvm-svn: 56274
2008-09-17 04:22:09 +00:00
Ted Kremenek 5f09b1dece Updated checker build.
llvm-svn: 56177
2008-09-13 00:23:41 +00:00
Daniel Dunbar 229121df87 Add website links to testing coverage & specification references.
llvm-svn: 56167
2008-09-12 18:33:44 +00:00
Ted Kremenek d3f0d9b07c Updated checker build.
llvm-svn: 56142
2008-09-12 04:56:58 +00:00
Ted Kremenek f82dab1a7a Updated checker build.
llvm-svn: 55810
2008-09-04 23:13:30 +00:00
Ted Kremenek 82aa5aba93 Updated checker build.
llvm-svn: 55757
2008-09-04 02:36:37 +00:00
Ted Kremenek fd8ede33db Updated checker build.
llvm-svn: 55618
2008-09-01 22:51:34 +00:00
Ted Kremenek 8af7e8b650 Updated checker build.
llvm-svn: 55613
2008-09-01 20:13:28 +00:00
Ted Kremenek c400511a55 Updated analyzer build.
llvm-svn: 55505
2008-08-28 22:15:34 +00:00
Ted Kremenek c1cf430051 Update checker build.
llvm-svn: 55455
2008-08-28 01:42:51 +00:00
Ted Kremenek 5bc033b934 Update checker build.
llvm-svn: 55447
2008-08-27 22:49:55 +00:00
Nico Weber 9f0f805bf9 make www less outdated
llvm-svn: 55388
2008-08-26 21:36:37 +00:00
Nico Weber 677a021665 update documentation
llvm-svn: 55386
2008-08-26 21:23:32 +00:00
Ted Kremenek 92adb8d605 Update checker build.
llvm-svn: 55337
2008-08-25 21:27:06 +00:00
Chris Lattner ab18099c98 other updates
llvm-svn: 55278
2008-08-24 05:56:54 +00:00
Chris Lattner 8659651a12 link to c++ status page
llvm-svn: 55277
2008-08-24 05:44:37 +00:00
Chris Lattner d0449107d6 codegen is still not 'finished', but in a better state than before.
llvm-svn: 55276
2008-08-24 05:42:07 +00:00
Daniel Dunbar 9f92361f80 Add some QA related example clang projects.
llvm-svn: 55196
2008-08-22 20:18:22 +00:00
Ted Kremenek 834c57db34 Updated checker build.
llvm-svn: 55169
2008-08-22 05:14:28 +00:00
Ted Kremenek 8af2d655ab Updated latest checker build.
llvm-svn: 55162
2008-08-22 03:06:47 +00:00
Ted Kremenek d0cb5056b0 Fix URL typo.
llvm-svn: 55066
2008-08-20 17:20:54 +00:00
Ted Kremenek ec2875d715 Updated checker build.
llvm-svn: 55065
2008-08-20 17:19:58 +00:00
Ted Kremenek 55a3c78835 Update checker-78.
llvm-svn: 54970
2008-08-19 01:17:30 +00:00
Ted Kremenek 093045b011 Updated latest checker build.
llvm-svn: 54808
2008-08-14 23:35:31 +00:00
Ted Kremenek 88f001c4e3 Updated latest checker build.
llvm-svn: 54720
2008-08-13 04:12:49 +00:00
Argyrios Kyrtzidis 379d2edc29 Mention 'wchar_t' at the C++ status page.
llvm-svn: 54595
2008-08-09 22:12:36 +00:00
Ted Kremenek 8f50b64eef Updated checker build.
llvm-svn: 54566
2008-08-09 00:22:35 +00:00
Ted Kremenek 1a02630b63 Updated checker build.
llvm-svn: 54562
2008-08-08 22:25:17 +00:00
Ted Kremenek a4750cb1e5 Updated checker build.
llvm-svn: 54437
2008-08-06 23:57:27 +00:00
Ted Kremenek 11911c2940 Updated latest checker build.
llvm-svn: 54324
2008-08-04 17:36:34 +00:00
Ted Kremenek dea68f4cbe Updated latest checker build.
llvm-svn: 54276
2008-08-03 03:14:03 +00:00
Chris Lattner 373351725f add a crazy idea
llvm-svn: 54151
2008-07-29 03:46:33 +00:00
Chris Lattner 03bc8c0ab8 fix tag
llvm-svn: 54121
2008-07-27 06:13:09 +00:00
Chris Lattner e8c687f05a list delta and distcc.
llvm-svn: 54120
2008-07-27 06:10:19 +00:00
Chris Lattner 7cb2da9d0b link to doxygen dox
llvm-svn: 54110
2008-07-26 23:45:57 +00:00
Ted Kremenek ef6378cda7 Remove some old text.
llvm-svn: 54095
2008-07-26 05:21:44 +00:00
Ted Kremenek 0478105f7c Added project idea for a doxygen-like tool built using clang
llvm-svn: 54076
2008-07-25 23:34:29 +00:00
Ted Kremenek e8f7bdc5cf Updated latest checker build.
llvm-svn: 54060
2008-07-25 21:05:04 +00:00
Ted Kremenek 177bc93165 Updated checker build.
llvm-svn: 54012
2008-07-25 05:21:03 +00:00
Ted Kremenek 365f21c8db Updated checker build.
llvm-svn: 53992
2008-07-24 18:15:01 +00:00
Ted Kremenek 25177f5e53 Updated checker build.
llvm-svn: 53969
2008-07-23 23:39:06 +00:00
Ted Kremenek 0b39845f93 Updated checker build.
llvm-svn: 53936
2008-07-22 22:45:52 +00:00
Ted Kremenek b47772535b Update checker build.
llvm-svn: 53855
2008-07-21 17:53:09 +00:00
Chris Lattner 9099474130 Add a space, ted apparently has philosophical problems with spaces ;-)
llvm-svn: 53808
2008-07-20 04:22:06 +00:00
Ted Kremenek 4f2fb96d18 Updated latest checker build.
llvm-svn: 53800
2008-07-19 19:50:00 +00:00
Ted Kremenek 6f2c46a275 Update checker build.
llvm-svn: 53769
2008-07-18 20:22:22 +00:00
Ted Kremenek 9976888190 Added headers
llvm-svn: 53742
2008-07-17 22:41:39 +00:00
Ted Kremenek 9ace803308 We now build universal binaries of the checker.
llvm-svn: 53725
2008-07-17 18:35:12 +00:00
Ted Kremenek de3725367b Updated latest checker build.
llvm-svn: 53664
2008-07-16 02:39:15 +00:00
Ted Kremenek 28762a5e49 Incremented latest checker build.
llvm-svn: 53631
2008-07-15 18:15:51 +00:00
Ted Kremenek 41aeef5205 Update radar component to file static analyzer bugs against.
llvm-svn: 53589
2008-07-15 03:51:09 +00:00
Ted Kremenek 9731a97220 Removed disclaimer about checker-36, which is old news.
llvm-svn: 53588
2008-07-15 03:49:15 +00:00
Ted Kremenek a696ca66e9 Fix minor mistake in clang checkout instructions.
llvm-svn: 53550
2008-07-14 14:40:22 +00:00
Ted Kremenek 20704a0ce8 Updated latest checker build. This build includes the new check for type-compatibility of the return types of ObjC methods.
llvm-svn: 53496
2008-07-11 23:29:43 +00:00
Chris Lattner cfba0fade8 Add a new distcc status page, which is currently empty and not
linked from anywhere. It will be linked when content is filled in.

Page by Csaba Hruska!

llvm-svn: 53392
2008-07-10 05:32:43 +00:00
Ted Kremenek a3f878dcab More information on filing bug reports.
llvm-svn: 53373
2008-07-09 22:20:56 +00:00
Ted Kremenek bf98eed4ef Updated checker build.
llvm-svn: 53339
2008-07-09 18:26:32 +00:00
Ted Kremenek 891c737e39 More info on filing static analysis bug reports.
llvm-svn: 53250
2008-07-08 21:25:35 +00:00
Ted Kremenek 8a3cb43fc0 Updated latest checker build.
llvm-svn: 53191
2008-07-07 18:43:43 +00:00
Ted Kremenek e83e69e795 Update latest checker build.
llvm-svn: 53129
2008-07-03 23:40:44 +00:00
Ted Kremenek 69ba008ea3 Updated latest checker build.
llvm-svn: 53118
2008-07-03 22:35:30 +00:00
Chris Lattner 4cab581bc0 add c++ status to sidebar
llvm-svn: 53107
2008-07-03 17:43:22 +00:00
Ted Kremenek 38b1e57a4d Updated latest checker build.
llvm-svn: 53103
2008-07-03 16:26:26 +00:00