Commit Graph

1150 Commits

Author SHA1 Message Date
Richard Smith 990668b7d0 DR407: Rationalize how we handle tags being hidden by typedefs. Even with
DR407, the C++ standard doesn't really say how this should work. Here's what we
do (which is consistent with DR407 as far as I can tell):

 * When performing name lookup for an elaborated-type-specifier, a tag
   declaration hides a typedef declaration that names the same type.
 * When performing any other kind of lookup, a typedef declaration hides
   a tag declaration that names the same type.

In any other case where lookup finds both a typedef and a tag (that is, when
they name different types), the lookup will be ambiguous. If lookup finds a
tag and a typedef that name the same type, and finds anything else, the lookup
will always be ambiguous (even if the other entity would hide the tag, it does
not also hide the typedef).

llvm-svn: 252959
2015-11-12 22:04:34 +00:00
Richard Smith 42b1057244 N3922: direct-list-initialization of an auto-typed variable no longer deduces a
std::initializer_list<T> type. Instead, the list must contain a single element
and the type is deduced from that.

In Clang 3.7, we warned by default on all the cases that would change meaning
due to this change. In Clang 3.8, we will support only the new rules -- per
the request in N3922, this change is applied as a Defect Report against earlier
versions of the C++ standard.

This change is not entirely trivial, because for lambda init-captures we
previously did not track the difference between direct-list-initialization and
copy-list-initialization. The difference was not previously observable, because
the two forms of initialization always did the same thing (the elements of the
initializer list were always copy-initialized regardless of the initialization
style used for the init-capture).

llvm-svn: 252688
2015-11-11 01:36:17 +00:00
Jonathan Roelofs e961432ae7 Create install targets for scan-build and scan-view
http://reviews.llvm.org/D14403

llvm-svn: 252474
2015-11-09 16:12:56 +00:00
Richard Smith ea26041bbb Better link for Library Fundamentals TS.
llvm-svn: 252223
2015-11-05 22:21:52 +00:00
Richard Smith 3f22bf947d Fix incorrect status for P0012R1.
llvm-svn: 252216
2015-11-05 21:42:32 +00:00
Richard Smith 60fc149e43 Fix CSS style name.
llvm-svn: 252215
2015-11-05 21:42:07 +00:00
Richard Smith 894835f611 Update C++ status page to match motions from Kona.
llvm-svn: 252214
2015-11-05 21:41:06 +00:00
Ehsan Akhgari f16435d85e Add a link to the DXR project
DXR is a project developed at Mozilla that implements a code indexing
and browsing utility on top of libclang that has features such as
call graph querying.

llvm-svn: 251638
2015-10-29 17:20:17 +00:00
Devin Coughlin 97f78cfa28 [analyzer] Update analyzer website for release of checker-277.
llvm-svn: 251591
2015-10-29 01:23:57 +00:00
Anna Zaks ac98dbc33b [analyzer] Enhance FAQ with instructions on handing unused variables.
llvm-svn: 251448
2015-10-27 20:19:38 +00:00
Jordan Rose 76a74c5617 [analyzer] Update links to developer.apple.com.
The content at the new links is /also/ a little dated, but that's our
(Apple's) problem.

llvm-svn: 247999
2015-09-18 16:12:16 +00:00
Yury Gribov daace1bb6b Mention that libcxx is required to build Compiler-RT tests on OS X.
llvm-svn: 247696
2015-09-15 15:05:47 +00:00
Tanya Lattner 4a08e931b6 Update mailing list references to lists.llvm.org
llvm-svn: 244000
2015-08-05 03:55:23 +00:00
Davide Italiano 9e1006d785 Revert r243827.
Until I figure out what's the right way of updating this file.

llvm-svn: 243840
2015-08-01 18:25:03 +00:00
Davide Italiano 2dd004487d Convertibility of nullptr_t to bool is available in clang. Note it.
llvm-svn: 243827
2015-08-01 05:48:03 +00:00
Hans Wennborg 3f398b51fb Update cxx_dr_status.html after 3.7 branch
llvm-svn: 242244
2015-07-14 23:21:53 +00:00
Richard Smith 88fe69ce21 DR1909: Diagnose all invalid cases of a class member sharing its name with the class.
llvm-svn: 241425
2015-07-06 01:45:27 +00:00
Eric Christopher 2c4555ad1b Fix "the the" in comments/documentation/etc.
llvm-svn: 240110
2015-06-19 01:52:53 +00:00
Faisal Vali 24d59d14ba "This adds -fconcepts-ts as a cc1 option for enabling the
in-progress implementation of the Concepts TS. The recommended feature
test macro __cpp_experimental_concepts is set to 1 (as opposed to
201501) to indicate that the feature is enabled, but the
implementation is incomplete.

The link to the Concepts TS in cxx_status is updated to refer to the
PDTS (N4377). Additional changes related to __has_feature and
__has_extension are to follow in a later change.

Relevant tests include:

test/Lexer/cxx-features.cpp

The test file is updated with testing of the C++14 + Concepts TS mode.
The expected behaviour is the same as that of the C++14 modes except
for the case of __cpp_experimental_concepts."

- Hubert Tong.

Being committed for Hubert (as per his understanding with Richard Smith) as we start work on the concepts-ts following our preliminary strategy session earlier today. 

The patch is tiny and seems quite standard.

Thanks Hubert!

llvm-svn: 237982
2015-05-22 01:11:10 +00:00
Jonathan Roelofs 99bdd98a2b Fix 'CFG graph' typo. NFC
Patch by Jon Eyolfson!

llvm-svn: 237713
2015-05-19 18:51:56 +00:00
Richard Smith a462b4c9ac DR295: cv-qualifiers on function types are ignored in C++.
llvm-svn: 237383
2015-05-14 19:10:42 +00:00
Richard Smith 2d5814c2d4 Update cxx_dr_status to latest issues list.
llvm-svn: 237382
2015-05-14 19:07:47 +00:00
Yaron Keren 9f88702ac6 Update the subversion link to http://subversion.apache.org/packages.html.
llvm-svn: 236734
2015-05-07 15:15:16 +00:00
Yaron Keren 37f99ed0fb Fix clang getting started guide to require VC2013 instead of VS2012.
llvm-svn: 236733
2015-05-07 15:12:30 +00:00
Alexey Samsonov ec0bff9262 Recommend to use CMake on the Clang Getting Started page.
llvm-svn: 235402
2015-04-21 18:38:31 +00:00
Benjamin Kramer 6dcddc21f8 Mark DR777 only as fixed in clang SVN.
llvm-svn: 233391
2015-03-27 17:38:35 +00:00
Benjamin Kramer fe25759022 [Sema] Implement DR777
A parameter pack after a default argument is now valid.

PR23029.

llvm-svn: 233377
2015-03-27 13:58:41 +00:00
Reid Kleckner 7ffc3fbb2f C++14: Disable sized deallocation by default due to ABI breakage
There are no widely deployed standard libraries providing sized
deallocation functions, so we have to punt and ask the user if they want
us to use sized deallocation. In the future, when such libraries are
deployed, we can teach the driver to detect them and enable this
feature.

N3536 claimed that a weak thunk from sized to unsized deallocation could
be emitted to avoid breaking backwards compatibility with standard
libraries not providing sized deallocation. However, this approach and
other variations don't work in practice.

With the weak function approach, the thunk has to have default
visibility in order to ensure that it is overridden by other DSOs
providing sized deallocation. Weak, default visibility symbols are
particularly expensive on MachO, so John McCall was considering
disabling this feature by default on Darwin. It also changes behavior
ELF linking behavior, causing certain otherwise unreferenced object
files from an archive to be pulled into the link.

Our second approach was to use an extern_weak function declaration and
do an inline conditional branch at the deletion call site. This doesn't
work because extern_weak only works on MachO if you have some archive
providing the default value of the extern_weak symbol. Arranging to
provide such an archive has the same challenges as providing the symbol
in the standard library. Not to mention that extern_weak doesn't really
work on COFF.

Reviewers: rsmith, rjmccall

Differential Revision: http://reviews.llvm.org/D8467

llvm-svn: 232788
2015-03-20 00:31:07 +00:00
Anton Yartsev 1c6ff0ac2e [analyzer] www: +progress for undefbehavior.ZeroAllocDereference
llvm-svn: 231978
2015-03-11 22:29:32 +00:00
Sylvestre Ledru b062fd587d Fix a menu issue. patch by Vassil Vassilev
llvm-svn: 231637
2015-03-09 09:09:55 +00:00
Hans Wennborg b202b27a22 Add a download link to the web page (PR22764)
llvm-svn: 231431
2015-03-06 00:13:55 +00:00
Larisse Voufo 17151eba64 Fix typo.
llvm-svn: 230579
2015-02-25 23:48:35 +00:00
Larisse Voufo 351f309dab Move -fdefine-sized-deallocation and -fno-sized-deallocation options from driver into CC1 for now.
llvm-svn: 230577
2015-02-25 23:48:25 +00:00
Larisse Voufo 01c97c0860 Fix typo.
llvm-svn: 230159
2015-02-22 06:36:49 +00:00
Larisse Voufo 0d0237f6cb Move -fdefine-sized-deallocation and -fno-sized-deallocation options from driver into CC1 for now.
llvm-svn: 230158
2015-02-22 06:36:46 +00:00
Larisse Voufo 2e5c25ac77 Fix typo.
llvm-svn: 230114
2015-02-21 01:05:29 +00:00
Larisse Voufo dcc0eddd18 Move -fdefine-sized-deallocation and -fno-sized-deallocation options from driver into CC1 for now.
llvm-svn: 230112
2015-02-21 01:03:48 +00:00
David Majnemer 12d3783add Mark DR1940 as implemented
llvm-svn: 229829
2015-02-19 07:29:01 +00:00
David Majnemer 6440548434 Mark DR1947 as implemented
llvm-svn: 229828
2015-02-19 07:28:57 +00:00
David Majnemer 7da2302780 Mark DR1948 as implemented
llvm-svn: 229827
2015-02-19 07:28:55 +00:00
David Majnemer 54dc82e1d2 Mark DR1994 as a duplicate of DR529
llvm-svn: 229826
2015-02-19 07:28:52 +00:00
David Majnemer 2dbad01349 Mark DR1968 as implemented
llvm-svn: 229825
2015-02-19 07:28:49 +00:00
Larisse Voufo ee3c1b2a71 Update C++ implementation status page with recent changes w.r.t. to sized deallocation.
llvm-svn: 229818
2015-02-19 04:34:13 +00:00
Richard Smith 3cfad7ee25 Update cxx_dr_status to cover dr1748 and add test.
llvm-svn: 229229
2015-02-14 03:38:31 +00:00
Benjamin Kramer eb0ad45f3f Update cxx_status to list features implemented in Clang 3.6.
Still yellow because 3.6 is unreleased. While there make Urbana paper
links clickable and list binary literals as available in Clang 2.9
(they've been available basically since the dawn of Clang, but not
having a version number in the table looks weird)

llvm-svn: 228571
2015-02-09 11:48:43 +00:00
Larisse Voufo 4891e74c39 Re-arrange DR test cases, and update DR status page.
llvm-svn: 227279
2015-01-28 01:01:21 +00:00
Richard Smith 48372b68fe DR1902: if overload resolution recurses, and the inner overload resolution
selects a deleted function, the outer function is still a candidate even though
the initialization sequence is "otherwise ill-formed".

llvm-svn: 227169
2015-01-27 03:30:40 +00:00
Hans Wennborg a38fb96796 Update cxx_dr_status.html after 3.6 branch
llvm-svn: 226008
2015-01-14 18:14:00 +00:00
Anton Yartsev df7a5b14c2 [analyzer] Updated progress for memory.ZeroAlloc
llvm-svn: 224797
2014-12-24 01:04:38 +00:00
Anton Yartsev 50a91cca17 [analyzer] +memory.ZeroAlloc
llvm-svn: 224796
2014-12-24 00:46:56 +00:00