Commit Graph

571 Commits

Author SHA1 Message Date
Sebastian Redl 576fd424df Implement C++0x nullptr.
llvm-svn: 71405
2009-05-10 18:38:11 +00:00
Ted Kremenek 9a627e60cd Update checker build.
llvm-svn: 71404
2009-05-10 17:41:29 +00:00
Ted Kremenek 9dc1bed4a6 Update checker build.
llvm-svn: 71387
2009-05-10 05:54:23 +00:00
Ted Kremenek 1e0d6a5957 Update checker build.
llvm-svn: 71375
2009-05-10 02:22:16 +00:00
Ted Kremenek 6631d7c4be Roll back to checker build 0.195.
llvm-svn: 71348
2009-05-09 07:05:44 +00:00
Douglas Gregor 1bbffbceae Big update to the C++ status table to reflect "recent"
development. Still much more to write!

llvm-svn: 71167
2009-05-07 17:50:16 +00:00
Ted Kremenek 83ffab06ef Update checker build.
llvm-svn: 71112
2009-05-06 20:13:50 +00:00
Ted Kremenek 82f7cfa156 Update checker build.
llvm-svn: 71046
2009-05-06 00:14:14 +00:00
Ted Kremenek 09356a83c4 Update checker build.
llvm-svn: 70961
2009-05-05 03:56:29 +00:00
Ted Kremenek 66f8fe18ef Update checker build.
llvm-svn: 70858
2009-05-04 14:24:29 +00:00
Daniel Dunbar 032dc63cd4 Nightly test coverage reporting is back online.
llvm-svn: 70814
2009-05-03 23:46:18 +00:00
Ted Kremenek f520136939 Update checker build.
llvm-svn: 70615
2009-05-02 00:42:33 +00:00
Chris Lattner 2ab6983e41 C/ObjC work well enough with clang for them not to be a gcc strength anymore.
llvm-svn: 70528
2009-05-01 01:42:13 +00:00
Chris Lattner 0936387c46 add word
llvm-svn: 70527
2009-05-01 01:40:42 +00:00
Chris Lattner 0cfae87d80 C/ObjC work well enough to claim support for them now.
llvm-svn: 70526
2009-05-01 01:40:17 +00:00
Ted Kremenek 10e21109d7 Update checker build.
llvm-svn: 70489
2009-04-30 15:15:37 +00:00
Sebastian Redl 2b9cacbffa Have the parser communicate the exception specification to the action.
llvm-svn: 70389
2009-04-29 17:30:04 +00:00
Ted Kremenek ed70968484 Update analyzer build.
llvm-svn: 70295
2009-04-28 14:32:50 +00:00
Sebastian Redl 4c018663b2 Track down return statements in the handlers of a function-try-block of constructors. Meh ...
llvm-svn: 70256
2009-04-27 21:33:24 +00:00
Sebastian Redl 4de47b445b Improve validation of C++ exception handling: diagnose throwing incomplete types and jumps into protected try-catch scopes.
llvm-svn: 70242
2009-04-27 20:27:31 +00:00
Sebastian Redl 21b349d5ea Fill in the C++ status table for exceptions
llvm-svn: 70217
2009-04-27 18:25:15 +00:00
Ted Kremenek b62db80c83 Updated checker build.
llvm-svn: 70065
2009-04-25 19:12:36 +00:00
Ted Kremenek 9099126795 Update checker build.
llvm-svn: 69940
2009-04-23 23:42:21 +00:00
Ted Kremenek 9dae596dc1 Update checker build.
llvm-svn: 69776
2009-04-22 05:13:56 +00:00
Sebastian Redl 8ce189f9ce Conditional operator C++ checking complete. What issues remain are in more general code.
llvm-svn: 69555
2009-04-19 21:53:20 +00:00
Sebastian Redl d1309a3c4d Add deleted functions and rvalue references to C++ status.
llvm-svn: 68903
2009-04-12 17:41:24 +00:00
Ted Kremenek be4fe9e239 Update analyzer build.
llvm-svn: 68860
2009-04-11 04:57:08 +00:00
Ted Kremenek 7318290ab9 Fix typo.
llvm-svn: 68782
2009-04-10 14:30:24 +00:00
Ted Kremenek cda32a1e0c Update analyzer build.
llvm-svn: 68781
2009-04-10 14:29:25 +00:00
Ted Kremenek 8cdc351ed3 Update analyzer build.
llvm-svn: 68707
2009-04-09 14:06:37 +00:00
Ted Kremenek c4631b2809 Update checker build.
llvm-svn: 68516
2009-04-07 14:26:58 +00:00
Ted Kremenek b594fa1289 Fix grammar.
llvm-svn: 68331
2009-04-02 18:20:13 +00:00
Ted Kremenek 01cccbfb03 Update checker build.
llvm-svn: 68302
2009-04-02 06:33:06 +00:00
Douglas Gregor 60f3c95926 Add some examples of Fix-it hints to our documentation
llvm-svn: 68210
2009-04-01 16:24:40 +00:00
Douglas Gregor 2e0757f319 Give Type::getDesugaredType a "for-display" mode that can apply more
heuristics to determine when it's useful to desugar a type for display
to the user. Introduce two C++-specific heuristics:

  - For a qualified type (like "foo::bar"), only produce a new
    desugred type if desugaring the qualified type ("bar", in this
    case) produces something interesting. For example, if "foo::bar"
    refers to a class named "bar", don't desugar. However, if
    "foo::bar" refers to a typedef of something else, desugar to that
    something else. This gives some useful desugaring such as
    "foo::bar (aka 'int')".
  - Don't desugar class template specialization types like
    "basic_string<char>" down to their underlying "class
    basic_string<char, char_traits<char>, allocator<char>>, etc.";
    it's better just to leave such types alone. 

Update diagnostics.html with some discussion and examples of type
preservation in C++, showing qualified names and class template
specialization types.

llvm-svn: 68207
2009-04-01 15:47:24 +00:00
Anders Carlsson 452e1c8a6a We fully support namespace aliases now.
llvm-svn: 68116
2009-03-31 17:17:14 +00:00
Ted Kremenek 42361b3eb5 Update checker build.
llvm-svn: 67976
2009-03-29 00:43:39 +00:00
Ted Kremenek b3e8f6531d Update "Getting Started" with more current information about 'clang-cc' and 'clang'.
llvm-svn: 67850
2009-03-27 16:32:57 +00:00
Douglas Gregor 0caea8cca7 Add another C++ open project
llvm-svn: 67620
2009-03-24 16:16:53 +00:00
Anders Carlsson b0ab31b7f6 Remove a task that's completed now.
llvm-svn: 67596
2009-03-24 01:25:56 +00:00
Anders Carlsson b6da73f2e0 class.abstract is complete. Anything that doesn't work is a bug.
llvm-svn: 67595
2009-03-24 01:24:06 +00:00
Ted Kremenek 74250d1d68 Update checker build.
llvm-svn: 67584
2009-03-24 00:35:59 +00:00
Ted Kremenek 673a4eef07 Update checker build.
llvm-svn: 67553
2009-03-23 19:53:30 +00:00
Ted Kremenek 43e2deee22 Update checker build.
llvm-svn: 67498
2009-03-23 02:00:36 +00:00
Douglas Gregor 2460c0c37c Link from the C++ status page to the open projects page
llvm-svn: 67399
2009-03-20 20:39:57 +00:00
Douglas Gregor 7262d1c003 Document some small- to mid-size open C++ projects
llvm-svn: 67398
2009-03-20 20:37:36 +00:00
Chris Lattner 308fdf6ee9 wording.
llvm-svn: 67337
2009-03-19 22:03:42 +00:00
Chris Lattner 8fda6749aa add link to new page
llvm-svn: 67324
2009-03-19 18:58:22 +00:00
Chris Lattner 3d26bc8fdf link to diags page.
llvm-svn: 67323
2009-03-19 18:57:33 +00:00
Chris Lattner 2302ee59e1 move most of the diags info out to its own file.
llvm-svn: 67321
2009-03-19 18:56:04 +00:00
Chris Lattner 136d84dbeb split diagnostics examples out to its own file.
llvm-svn: 67318
2009-03-19 18:52:17 +00:00
Chris Lattner 480bb91b18 add a note
llvm-svn: 67290
2009-03-19 07:06:44 +00:00
Chris Lattner 2b7dbf4d0a update our bragging about diagnostics. :)
llvm-svn: 67289
2009-03-19 06:52:51 +00:00
Ted Kremenek bb93b788b7 Update checker build
llvm-svn: 67279
2009-03-19 01:51:49 +00:00
Ted Kremenek b7e6aea63e Update checker build.
llvm-svn: 67266
2009-03-19 00:20:07 +00:00
Anders Carlsson bd1a1d2fa6 We support static_assert.
llvm-svn: 67043
2009-03-16 17:28:26 +00:00
Ted Kremenek fcf7348f80 Update checker build.
llvm-svn: 66999
2009-03-14 00:46:46 +00:00
Ted Kremenek 80caa92255 Update checker build.
llvm-svn: 66926
2009-03-13 18:48:36 +00:00
Douglas Gregor 201217324a Split get_involved into Get Involved and Open Projects pages
llvm-svn: 66891
2009-03-13 15:06:27 +00:00
Ted Kremenek 4d4d2277a9 Update checker build.
llvm-svn: 66855
2009-03-13 00:43:31 +00:00
Douglas Gregor 83e9e91479 Note some advances in our C++ support
llvm-svn: 66742
2009-03-12 00:09:31 +00:00
Ted Kremenek 4bb994a319 Update checker build.
llvm-svn: 66643
2009-03-11 06:11:39 +00:00
Chris Lattner 5013d3a893 update this, C headers don't need hacks anymore.
llvm-svn: 66544
2009-03-10 16:01:44 +00:00
Ted Kremenek 07393e0546 Update analyzer build.
llvm-svn: 66538
2009-03-10 07:03:32 +00:00
Ted Kremenek 623d2a3ce4 Update checker build.
llvm-svn: 66507
2009-03-09 23:45:57 +00:00
Ted Kremenek 62d9de7cae Update checker build.
llvm-svn: 66226
2009-03-06 00:53:59 +00:00
Ted Kremenek 1d09f6a221 Update checker build.
llvm-svn: 66152
2009-03-05 07:55:15 +00:00
Daniel Dunbar 817b7692fb Add new performance numbers; no discussion yet. Obvious two
conclusions are our PCH generation is way faster than gcc, and the
Python based driver kills compile times.

llvm-svn: 65980
2009-03-04 00:04:28 +00:00
Ted Kremenek d62491a808 Update checker build.
llvm-svn: 65916
2009-03-03 01:44:57 +00:00
Ted Kremenek 8a56e5c29b Update checker build.
llvm-svn: 65676
2009-02-28 02:04:49 +00:00
Ted Kremenek 918ae24edd Update checker build.
llvm-svn: 65625
2009-02-27 07:16:04 +00:00
Gabor Greif dd4ddf13a6 fix (hopefully) some validation errors
llvm-svn: 65455
2009-02-25 15:22:45 +00:00
Gabor Greif 267e01cb28 minor tweaks to readability
llvm-svn: 65440
2009-02-25 09:45:40 +00:00
Chris Lattner d79eb11e22 update
llvm-svn: 65433
2009-02-25 05:43:33 +00:00
Chris Lattner 014d2ad55f Headers are basically done, debug info is just about done (and
will improve a lot this week hopefully), and a libgcc replacement
is ready once I wrangle lawyers.

llvm-svn: 65432
2009-02-25 05:39:01 +00:00
Chris Lattner a004a1846b clang seems "generally useful" for c and objc by now, though obviously bugs
still remain.

llvm-svn: 65431
2009-02-25 05:35:47 +00:00
Ted Kremenek 7a164114f6 Update checker build.
llvm-svn: 65421
2009-02-25 00:54:41 +00:00
Ted Kremenek 80049e0b6f Updated checker build.
llvm-svn: 65350
2009-02-23 23:37:29 +00:00
Ted Kremenek cd25abed46 Update to checker-0.162 (fixed header issue in tar.bz2 package).
llvm-svn: 65283
2009-02-22 08:50:06 +00:00
Ted Kremenek 589aa282dd Reverted back to checker-0.161 because of a header issue.
llvm-svn: 65281
2009-02-22 08:42:49 +00:00
Ted Kremenek 1f19573c84 Updated checker build.
llvm-svn: 65280
2009-02-22 08:38:12 +00:00
Ted Kremenek bc7d915c4c Update checker build.
llvm-svn: 65227
2009-02-21 06:58:08 +00:00
Ted Kremenek 193cbdcbe3 Update checker build.
llvm-svn: 65054
2009-02-19 19:08:21 +00:00
Ted Kremenek 1d1d39757a Update checker build.
llvm-svn: 65033
2009-02-19 07:22:21 +00:00
Ted Kremenek aa61951171 Fix comment: analyzer builds are universal binaries.
llvm-svn: 64950
2009-02-18 21:24:14 +00:00
Ted Kremenek a16c98b97d Update checker build.
llvm-svn: 64879
2009-02-18 03:09:29 +00:00
Ted Kremenek 386e590239 Update checker build.
llvm-svn: 64753
2009-02-17 07:47:57 +00:00
Cedric Venet 08438133da Add svn:eol-style=native to some files
Correct two files with inconsistent lines endings.

llvm-svn: 64564
2009-02-14 20:20:19 +00:00
Ted Kremenek 10251c91a8 Update checker build.
llvm-svn: 64507
2009-02-13 23:41:12 +00:00
Ted Kremenek 0ae9df8377 Update checker build.
llvm-svn: 64365
2009-02-12 07:09:27 +00:00
Ted Kremenek 345749aff4 Update checker build.
llvm-svn: 64297
2009-02-11 07:50:23 +00:00
Ted Kremenek f83882987e Updated checker build.
llvm-svn: 64208
2009-02-10 07:38:50 +00:00
Ted Kremenek a446e95891 Update checker build.
llvm-svn: 64190
2009-02-10 00:53:39 +00:00
Chris Lattner 10c16ca0b9 spell out explicitly
llvm-svn: 64129
2009-02-09 08:47:44 +00:00
Chris Lattner f5e9242dd4 add doc
llvm-svn: 64128
2009-02-09 08:47:17 +00:00
Chris Lattner cd2b504d5f add another crazy idea :)
llvm-svn: 64092
2009-02-08 20:41:34 +00:00
Ted Kremenek beb1ce6504 Updated checker build.
llvm-svn: 64071
2009-02-08 05:05:02 +00:00
Sebastian Redl f3b5e27fee Make const-initialized const integral variables I-C-Es in C++.
llvm-svn: 64015
2009-02-07 13:06:23 +00:00
Sebastian Redl 779dd9382d Fill in C++ status table for section 7 (declarations).
llvm-svn: 64013
2009-02-07 12:42:13 +00:00
Sebastian Redl 112a976616 Implement dereferencing of pointers-to-member.
llvm-svn: 63983
2009-02-07 00:15:38 +00:00
Ted Kremenek 686a09d7b8 Updated checker build.
llvm-svn: 63897
2009-02-05 23:19:12 +00:00
Ted Kremenek cc41c07227 Update checker build.
llvm-svn: 63869
2009-02-05 15:48:51 +00:00
Sebastian Redl 18f8ff62a3 Implement taking address of member functions, including overloaded ones.
llvm-svn: 63779
2009-02-04 21:23:32 +00:00
Ted Kremenek 77de9885f8 Update checker build.
llvm-svn: 63753
2009-02-04 19:09:38 +00:00
Douglas Gregor 7bad6d1d32 Argument Dependent Lookup is done (for now). Also, update the status
for a few other name-lookup sections.

llvm-svn: 63734
2009-02-04 15:07:16 +00:00
Chris Lattner a4e0d1d177 codegen is much farther along than when this was first written.
llvm-svn: 63668
2009-02-03 21:54:08 +00:00
Chris Lattner ab5d0ca71a update a couple entries, add a new idea
llvm-svn: 63665
2009-02-03 21:51:37 +00:00
Ted Kremenek a377abfe26 Update checker build.
llvm-svn: 63464
2009-01-31 01:32:23 +00:00
Douglas Gregor d14247a9e5 Implement and test aggregate initialization in C++. Major changes:
- Support initialization of reference members; complain if any
  reference members are left uninitialized.
  - Use C++ copy-initialization for initializing each element (falls
  back to constraint checking in C)
  - Make sure we diagnose when one tries to provide an initializer
  list for a non-aggregate.
  - Don't complain about empty initializers in C++ (they are permitted)
  - Unrelated but necessary: don't bother trying to convert the
  decl-specifier-seq to a type when we're dealing with a C++
  constructor, destructor, or conversion operator; it results in
  spurious warnings.

llvm-svn: 63431
2009-01-30 22:09:00 +00:00
Sebastian Redl ed8f200318 Implement pointer to member handling in static_cast.
Fix a stupid mistake in UnwrapSimilarPointers that made any two member pointers compatible as long as the pointee was the same.
Make a few style corrections as suggested by Chris.

llvm-svn: 63215
2009-01-28 18:33:18 +00:00
Douglas Gregor fb03466388 Complete semantic checking for typedef redeclarations in C++. The
rules are slightly different than in C, and now we handle both
dialects properly.

llvm-svn: 63211
2009-01-28 17:15:10 +00:00
Ted Kremenek cdca288cf8 Updated checker build.
llvm-svn: 63200
2009-01-28 15:05:42 +00:00
Sebastian Redl a5a77a6dc6 Add handling of member pointers to reinterpret_cast.
llvm-svn: 63150
2009-01-27 23:18:31 +00:00
Ted Kremenek 3efd355b9d Updated checker build.
llvm-svn: 63140
2009-01-27 22:24:33 +00:00
Sebastian Redl b44ab5f25d Add support for member pointers to const_cast.
llvm-svn: 63055
2009-01-26 22:19:12 +00:00
Sebastian Redl cf8e1fa58e Update C++ status table with new member pointer conversion capabilities.
llvm-svn: 62977
2009-01-26 00:11:25 +00:00
Ted Kremenek b239341ec4 Updated checker build.
llvm-svn: 62914
2009-01-24 08:11:59 +00:00
Ted Kremenek 94e826df0b Updated checker build.
llvm-svn: 62818
2009-01-23 00:11:54 +00:00
Ted Kremenek b46aead702 Updated checker build.
llvm-svn: 62655
2009-01-21 01:41:30 +00:00
Eli Friedman 75a495b495 Pixel font sizes are evil.
llvm-svn: 62586
2009-01-20 17:56:18 +00:00
Ted Kremenek 1da5987cb9 Update checker build.
llvm-svn: 62409
2009-01-17 06:41:35 +00:00
Ted Kremenek f5359ea9d0 Updated checker build.
llvm-svn: 62379
2009-01-16 23:26:38 +00:00
Douglas Gregor 5fb5397238 Introduce support for C++0x explicit conversion operators (N2437)
Small cleanup in the handling of user-defined conversions. 

Also, implement an optimization when constructing a call. We avoid
recomputing implicit conversion sequences and instead use those
conversion sequences that we computed as part of overload resolution.

llvm-svn: 62231
2009-01-14 15:45:31 +00:00
Ted Kremenek f9d3f0711a Updated checker build.
llvm-svn: 62137
2009-01-13 01:41:37 +00:00
Douglas Gregor c5e61070f6 Add the proper restrictions on the left-hand argument of a built-in
assignment operator candidate (C++ [over.match.oper]p4).

llvm-svn: 62128
2009-01-13 00:52:54 +00:00
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