Commit Graph

495 Commits

Author SHA1 Message Date
Sebastian Redl 9f831dbbcd Implement C++ semantics for C-style and functional-style casts. This regresses Clang extension conversions, like vectors, but allows conversions via constructors and conversion operators.
Add custom conversions to static_cast.

llvm-svn: 77076
2009-07-25 15:41:38 +00:00
Douglas Gregor c04e2d9bd6 We now do complete semantic checking for unions
llvm-svn: 76918
2009-07-24 00:05:42 +00:00
Douglas Gregor 020e4a9bbb Update C++ status to reflect progress on out-of-line definitions of class template members
llvm-svn: 76917
2009-07-23 23:58:15 +00:00
Ted Kremenek 7c701e7d86 Update cf_returns_retained/ns_returns_retained examples to use __has_feature.
llvm-svn: 76130
2009-07-17 00:25:49 +00:00
Chris Lattner 53ea7db5e3 linkify
llvm-svn: 75225
2009-07-10 05:07:59 +00:00
Argyrios Kyrtzidis bff082aec9 Add documentation for the Index library to clang's web page.
llvm-svn: 75222
2009-07-10 03:41:36 +00:00
Ted Kremenek 7127801201 Update checker build.
llvm-svn: 75147
2009-07-09 17:20:25 +00:00
Douglas Gregor b257e4fff8 Implement the simple form of overload resolution used when taking the
address of an overloaded function (which may involve both functions
and function templates). 

llvm-svn: 75069
2009-07-08 23:33:52 +00:00
Douglas Gregor ed3c80eb75 Update the C++ status table to better reflect our support for function overloading
llvm-svn: 74997
2009-07-08 10:03:09 +00:00
Douglas Gregor 197e5f7bb7 Improve argument-dependent lookup to find associated classes and
namespaces based on the template arguments of a class template
specialization type.

llvm-svn: 74993
2009-07-08 07:51:57 +00:00
Douglas Gregor 9fc6097145 Template argument deduction from a call has improved a bit
llvm-svn: 74966
2009-07-07 23:12:18 +00:00
Ted Kremenek b1281025f1 Update checker build.
llvm-svn: 74849
2009-07-06 19:57:59 +00:00
Ted Kremenek c17bab0b13 Update checker build.
llvm-svn: 74757
2009-07-03 03:26:09 +00:00
Douglas Gregor 0799d916e1 Add a Last Updated field to the C++ status page
llvm-svn: 74387
2009-06-27 19:33:58 +00:00
Douglas Gregor 1e880602ad Make a note of improvements to function templates
llvm-svn: 74360
2009-06-27 00:08:54 +00:00
Daniel Dunbar e5ebf02e0e Fix bar title in graphs.
llvm-svn: 74302
2009-06-26 18:29:52 +00:00
Daniel Dunbar 3ecc92147d Update performance numbers (missed a link)
llvm-svn: 74297
2009-06-26 18:15:47 +00:00
Daniel Dunbar 5b165e4930 Update performance numbers.
llvm-svn: 74296
2009-06-26 18:14:41 +00:00
Chris Lattner 6dde0bfef7 oink is dead.
llvm-svn: 74263
2009-06-26 04:10:17 +00:00
Anders Carlsson b7fe2d672a We now support decltype (as far as I know :)
llvm-svn: 74127
2009-06-24 22:10:19 +00:00
Ted Kremenek 6ea5dda489 Fix typo.
llvm-svn: 74107
2009-06-24 19:20:24 +00:00
Ted Kremenek d2ece0703c Reference the correct image...
llvm-svn: 74106
2009-06-24 19:19:18 +00:00
Ted Kremenek ffd586aa64 Add scan-build screenshot for attribute 'nonnull' example.
llvm-svn: 74104
2009-06-24 19:17:54 +00:00
Ted Kremenek 6e7d59f0c6 Fix broken HTML tag.
llvm-svn: 74103
2009-06-24 19:12:56 +00:00
Ted Kremenek b49fe2aff7 Remove reference to using 'clang' directly to analyze projects.
llvm-svn: 74102
2009-06-24 19:12:07 +00:00
Ted Kremenek 9f345e1cad Tighten screenshot.
llvm-svn: 74100
2009-06-24 19:08:56 +00:00
Ted Kremenek 550e701cf5 Replace 'clang --analyze' example for attribute cf_returns_retained with screenshots.
llvm-svn: 74098
2009-06-24 19:04:37 +00:00
Ted Kremenek 645c54ef11 Replace 'clang --analyze' example (in text) with screenshot from scan-build.
llvm-svn: 74095
2009-06-24 18:50:14 +00:00
Anders Carlsson b50f45f9b2 Nested classes are now complete.
llvm-svn: 74052
2009-06-24 02:03:09 +00:00
Anders Carlsson 58b19d5310 class.nested.type is done.
llvm-svn: 74034
2009-06-24 00:32:04 +00:00
Ted Kremenek 50d131dea1 Update checker build.
llvm-svn: 73518
2009-06-16 17:45:57 +00:00
Douglas Gregor baafda8394 Tweak the C++ open projects page
llvm-svn: 73409
2009-06-15 19:53:21 +00:00
Ted Kremenek a1cc273ab3 Revert r73341.
llvm-svn: 73393
2009-06-15 17:23:35 +00:00
Douglas Gregor ac1798a859 Note that we've implemented the right angle brackets extension in C++0x
llvm-svn: 73389
2009-06-15 16:50:45 +00:00
Zhongxing Xu a2937bc3cb 'not magic' => 'is not magic'
llvm-svn: 73386
2009-06-15 13:22:32 +00:00
Nuno Lopes 52c17e7201 fix the menu's links
llvm-svn: 73341
2009-06-14 09:40:09 +00:00
Douglas Gregor 33834516f3 Update LLVM.
Implement support for C++ Substitution Failure Is Not An Error
(SFINAE), which says that errors that occur during template argument
deduction do *not* produce diagnostics and do not necessarily make a
program ill-formed. Instead, template argument deduction silently
fails. This is currently implemented for template argument deduction
during matching of class template partial specializations, although
the mechanism will also apply to template argument deduction for
function templates. The scheme is simple:

  - If we are in a template argument deduction context, any diagnostic
    that is considered a SFINAE error (or warning) will be
    suppressed. The error will be propagated up the call stack via the
    normal means.
  - By default, all warnings and errors are SFINAE errors. Add the
    NoSFINAE class to a diagnostic in the .td file to make it a hard
    error (e.g., for access-control violations).

Note that, to make this fully work, every place in Sema that emits an
error *and then immediately recovers* will need to check
Sema::isSFINAEContext() to determine whether it must immediately
return an error rather than recovering.

llvm-svn: 73332
2009-06-14 07:33:30 +00:00
Douglas Gregor 170bc42547 It looks like we've finished off matching of class template partial specializations; add comments and update the C++ status page
llvm-svn: 73263
2009-06-12 22:31:52 +00:00
Douglas Gregor 30b0197169 Finish implementing checking of class template partial specializations
llvm-svn: 73260
2009-06-12 22:21:45 +00:00
Douglas Gregor 09a3023e65 Diagnose C++ [temp.class.spec]p9b3, where a class template partial
specialization's arguments are identical to the implicit template
arguments of the primary template. Typically, this is meant to be a
declaration/definition of the primary template, so we give that
advice.

llvm-svn: 73259
2009-06-12 22:08:06 +00:00
Douglas Gregor dc41eb18e9 Update the C++ status to reflect improvements in template argument deduction and the handling of class template partial specializations
llvm-svn: 73242
2009-06-12 19:15:38 +00:00
Douglas Gregor 873495ad98 Point to the clang driver, not the ccc driver
llvm-svn: 73192
2009-06-11 14:59:18 +00:00
Douglas Gregor f0ca0a684d Add pseudo-destructors to the Open Projects list
llvm-svn: 73191
2009-06-11 14:55:39 +00:00
Douglas Gregor 3afbdbd8b4 Prune some projects that have already been started
llvm-svn: 73190
2009-06-11 14:53:37 +00:00
Ted Kremenek e6d3ae9d99 Add redirects to new static analysis web site.
llvm-svn: 73120
2009-06-09 02:17:37 +00:00
Ted Kremenek 0da03ed2ae Update static analyzer link to new website.
llvm-svn: 73119
2009-06-09 01:37:34 +00:00
Ted Kremenek 0a7a2c45a4 Comment out preliminary text due to wishful thinking of getting more documentation done by this point.
llvm-svn: 73118
2009-06-09 01:32:41 +00:00
Ted Kremenek f588f6b8ca Last menu color tweaking (for now).
llvm-svn: 73117
2009-06-09 01:31:18 +00:00
Ted Kremenek cd698b2cc9 More color tweaking.
llvm-svn: 73116
2009-06-09 01:28:57 +00:00
Ted Kremenek 66a34398d0 Update menu colors.
llvm-svn: 73115
2009-06-09 01:28:04 +00:00