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

568 Коммитов

Автор SHA1 Сообщение Дата
Kostya Serebryany 684944e53c fix link
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152806 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-15 16:22:06 +00:00
Kostya Serebryany abc31cac3d [asan] update asan docs: mention CMake problem and to explain the status of MacOS 10.7 and 32-bit Linux
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152805 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-15 16:20:29 +00:00
Douglas Gregor 594f841934 Document the weak-linking behavior of the availability attribute
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152543 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11 17:21:03 +00:00
Douglas Gregor 93a7067302 Document the availability attribute
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152531 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11 04:53:21 +00:00
Douglas Gregor bccda480f4 Clarify even further that the lambda-to-block-pointer conversion is only available in Objective-C++
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152511 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10 22:20:11 +00:00
Douglas Gregor 8a4e1829d6 Document the conversion from a lambda closure type to a block pointer
in Objective-C++.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152446 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-09 23:24:48 +00:00
Richard Smith 69e7692ded Add user-defined literals to release notes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152424 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-09 19:09:47 +00:00
Richard Smith 9c1dda7d7b User-defined literals are done.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152396 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-09 08:41:27 +00:00
Richard Smith 80134582b6 Correct the documentation to give a legal example of a raw string literal.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152216 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-07 08:57:31 +00:00
Richard Smith ec92bc7897 Add a pile of tests for unrestricted unions, and advertise support for them.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151992 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-03 23:51:05 +00:00
Jean-Daniel Dupas 3fd808742e Fix Typo in 'objc changes' anchor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151978 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-03 13:37:22 +00:00
Kostya Serebryany 48a8cd9840 add documentation for -f[no-]thread-sanitizer and -f[no-]address-sanitizer to docs/UsersManual.html
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151858 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01 23:14:19 +00:00
Jean-Daniel Dupas 8a5e7fdd2c Implement double underscore names support in __has_attribute
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151809 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01 14:53:16 +00:00
Richard Smith 1d9f4c16ad Correct an example of a feature name to actually use a feature name rather
than an attribute name. Patch by Michel Morin!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151791 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01 02:12:07 +00:00
Richard Smith 88189556c5 Update release notes and language extensions pages to note that support for
generalized initializers is available.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151477 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26 07:09:21 +00:00
Richard Smith 5297d71e8c Accept __has_feature(__feature__) as a synonym for __has_feature(feature) (and
likewise for __has_extension). Patch by Jonathan Sauer!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151445 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25 10:41:10 +00:00
Douglas Gregor 4ca8ac2e61 Implement a new type trait __is_trivially_constructible(T, Args...)
that provides the behavior of the C++11 library trait
std::is_trivially_constructible<T, Args...>, which can't be
implemented purely as a library.

Since __is_trivially_constructible can have zero or more arguments, I
needed to add Yet Another Type Trait Expression Class, this one
handling arbitrary arguments. The next step will be to migrate
UnaryTypeTrait and BinaryTypeTrait over to this new, more general
TypeTrait class.

Fixes the Clang side of <rdar://problem/10895483> / PR12038.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151352 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24 07:38:34 +00:00
Douglas Gregor f28ded5e13 Fix indentation
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151264 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23 17:54:00 +00:00
Douglas Gregor 09315f326d Note that lambda expressions are available in the release notes for 3.1
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151263 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23 17:51:51 +00:00
Douglas Gregor 46e021e897 Clang supports lambdas.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151239 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23 05:44:09 +00:00
Chad Rosier cd376a1a75 Improve placement of clang crash diagnostics section.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151192 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-22 20:26:10 +00:00
Chad Rosier b211a4b32a Add clang crash diagnostic info and associated flags to Clang user manual.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151184 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-22 19:14:46 +00:00
Dmitri Gribenko 65005eb83b Add -Wstrncat-size and -Wempty-body to release notes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150879 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-18 14:13:26 +00:00
Nico Weber 0460651695 Add a few minor items to the 3.1 release notes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150656 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 02:35:03 +00:00
Richard Smith 45fb995781 Start off release notes for clang 3.1 with reference to C11 anonymous structs
and unions, and C++11 generalized constant expressions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150640 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 00:32:27 +00:00
David Blaikie ceb15656fb Remove the unuseful -fdiagnostics-show-name
This option was added in r129614 and doesn't have any use case that I'm aware
of. It's possible that external tools are using these names - and if that's
the case we can certainly reassess the functionality, but for now it lets us
shave out a few unneeded bits from clang.

Move the "StaticDiagNameIndex" table into the only remaining consumer, diagtool.
This removes the actual diagnostic name strings from clang entirely.

Reviewed by Chris Lattner & Ted Kremenek.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150612 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-15 19:45:34 +00:00
Richard Smith b5216aaf80 Advertize support for constexpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150524 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14 22:56:17 +00:00
Michael J. Spencer 8275fc0ba7 Fix broken link. I believe this has been broken for at least 7 months.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150329 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-12 09:11:39 +00:00
Benjamin Kramer b919815a0c Fix a typo (builting -> builtin).
Patch by Afriza N. Arief!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149822 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-05 11:24:56 +00:00
Kostya Serebryany 71efba0bba The following patch adds __attribute__((no_address_safety_analysis)) which will allow to disable
address safety analysis (such as e.g. AddressSanitizer or SAFECode) for a specific function.

When building with AddressSanitizer, add AddressSafety function attribute to every generated function
except for those that have __attribute__((no_address_safety_analysis)).

With this patch we will be able to
1. disable AddressSanitizer for a particular function
2. disable AddressSanitizer-hostile optimizations (such as some cases of load widening) when AddressSanitizer is on.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148842 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24 19:25:38 +00:00
Kostya Serebryany f5249f509e [asan] document the need for -fno-optimize-sibling-calls
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148716 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-23 18:50:23 +00:00
Benjamin Kramer 3419d7cd2e Tweak markup.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148221 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-15 16:42:14 +00:00
Anton Yartsev da90c77753 added descriptions of vector extensions, info about vector literals and vector operations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148220 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-15 16:22:24 +00:00
Benjamin Kramer 665a8dc953 Fix ALL the markup.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148219 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-15 15:26:07 +00:00
Kostya Serebryany e683fd9d6f [asan] mention -fno-omit-frame-pointer in the docs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147663 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-06 17:35:27 +00:00
Benjamin Kramer ffbe9b9c64 Mass rename C1x references to C11. The name hasn't proliferated like "C++0x" so this patch is surprisingly small.
Also drop -Wc1x-extensions in favor of -Wc11-extensions. I don't think we need to keep this around for compatibility.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147221 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-23 17:00:35 +00:00
Douglas Gregor 2d1e21abdc Fix typo 'typdefs', from Nikola Smiljanic
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146894 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-19 19:50:23 +00:00
Chris Lattner 2c2a385a1a fix a broken link
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146859 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-19 07:49:23 +00:00
Chris Lattner d4b66b9403 clarify that clang version number macros are marketing version #'s, not something useful.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146672 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-15 19:06:36 +00:00
Kostya Serebryany 2e17322994 [asan] update asan docs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146446 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-12 23:22:31 +00:00
Richard Smith 8a0f15592b Document the updated behaviour of __builtin_constant_p introduced in r146236.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146241 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-09 03:40:28 +00:00
Chris Lattner c9577f35bf we got badgered into supporting multi-alternative constraints.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145822 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-05 18:29:03 +00:00
Douglas Gregor 5e9392ba18 Implement support for the __is_final type trait, to determine whether
a class is marked 'final', from Alberto Ganesh Barbati! Fixes
PR11462.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145775 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-03 18:14:24 +00:00
Kostya Serebryany b87699353a [asan] update docs to allow, but discourage, -O0
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145653 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02 00:24:42 +00:00
Peter Collingbourne 375f7c4842 Add Clang release notes for OpenCL C support.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145360 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 02:03:07 +00:00
Peter Collingbourne 5cc989e8d7 Fix URL typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145359 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 02:03:03 +00:00
Chandler Carruth ee77d3d709 Fix a spelling error pointed out by Sebastien, and tidy up the
formatting here a bit... mostly to my preferred bikeshed-blue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145337 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 00:24:20 +00:00
Chandler Carruth f9e2e18847 Remove the last of my notes. I don't think these really need to be in
the release notes despite their awesomeness. If we had a thorough
discussion of the performance of Clang in 2.9 vs. 3.0, the first would
be more relevant, but we don't. The serialization stuff hopefully isn't
terribly visible to end users.

Objections to these omissions are of course welcome. =]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145336 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 00:24:18 +00:00
Chandler Carruth 45901b3f1b Last major chunk of features. This covers a couple of language
extensions and one infrastructure feature addition that has a direct
impact on other projects which use Clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145335 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 00:15:26 +00:00
Chandler Carruth 52e375e6f2 And sink the GNU runtime bit into this section as a stub.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145334 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 00:15:25 +00:00
Chandler Carruth 4d58212ab1 Flesh out the Objective-C section a bit. This may well need some love
from the Objective-C experts, but the basic stuff is there now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145333 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 00:15:23 +00:00
Rafael Espindola a5c502cccc CFI is mentioned on the LLVM releases as the clang bits are relatively small.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145325 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 23:58:04 +00:00
Francois Pichet 0c2198a579 Update release notes with 2 features now supported in -fms-extensions mode.
I think that's enough for my release notes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145320 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 23:46:15 +00:00
Richard Smith 4793138375 Release notes: add link to ISO C++ 2011 standard from the C++11 section.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145317 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 23:35:03 +00:00
Francois Pichet 551988f1bf Update release notes with information on MSVC mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145315 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 23:30:46 +00:00
Richard Smith ad5459a67c Release notes: fix up formatting of diagnostic example.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145311 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 23:16:15 +00:00
Chandler Carruth 185e9305f5 Extract a Windows section in the release notes. Hopefully this is more
accurate than my original notes were based on IRC conversations. Windows
folks, please edit as needed to make this closer to the truth if I've
still got it wrong.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145309 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 23:11:27 +00:00
Chandler Carruth 9c35304325 Create a stub for Nick to hack on, nuking another of my rough notes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145308 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 23:02:13 +00:00
Chandler Carruth 2f37685005 Pull the uninitialized values rewrite into the diagnostics section, and
add a bit to that section about the many bug-finding warnings that Clang
has grown since 2.9 as this is one of the more visible new additions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145307 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 22:54:33 +00:00
Chandler Carruth 3030b744fa Remove some features that don't really seem major enough or widely used
enough to merit space in the release notes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145306 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 22:54:31 +00:00
Richard Smith 62d730fcf9 Add a release notes section for C1X language features supported by clang 3.0.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145305 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 22:48:25 +00:00
Chandler Carruth 9a1671277f Pull out the libclang section and try to clean it up some. This one
feels a bit spartan currently.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145302 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 22:43:32 +00:00
Chandler Carruth 21480b7638 We now have text (or comment stubs for others) for these...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145299 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 22:36:40 +00:00
Chandler Carruth 58f2cbc083 Expand and clean up the diagnostics section.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145298 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 22:34:59 +00:00
Kostya Serebryany 7a31d7b9e4 fix html markup
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145297 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 22:34:10 +00:00
Chandler Carruth a0df07dd0d Create a more organized (but still commented out as not very useful)
stub for OpenCL work. I can't really dig enough out of the commit log
messages other than to tell that a lot of work went into this in the 2.9
-> 3.0 timeframe. I'll let the folks touching it decide if it merits
a spot in the release notes and provide the appropriate details if so.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145291 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 22:17:58 +00:00
Chandler Carruth 59abf06409 Create a 3.1 notes section in a comment so that the next batch are a bit
easier. Move the CUDA bits and the C1X/C++11 atomics stuff there. We
haven't exposed a __has_feature for the atomic builtins, so none of this
is available yet...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145288 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 22:12:44 +00:00
Chandler Carruth bfa55258fd Peter says this shouldn't make it to the relnotes, it's too immature at
this stage.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145286 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 22:06:59 +00:00
Chandler Carruth b882a1dbb2 Flesh out and pretty-up the driver section. This could probably use some
more love w.r.t. platforms other than Linux?

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145285 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 21:56:30 +00:00
Chandler Carruth bc02a043ff Add a brief mention of the warning flag name updates associated with the
C++11 standard.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145284 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 21:55:34 +00:00
Chandler Carruth f16d725302 Tidy up, wrap lines, and use <code> tags more consistently.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145283 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 21:47:51 +00:00
Anna Zaks a5a6d1d859 Cleanup the Release Notes for the static analyzer:
The performance improvement was committed after the 3.0 branch.
Constructors/destructors are handled by the CFG, but we do not do anything
special for them in the analyzer yet.

Since we do not have an open source release qualification for the analyzer,
we are not investing into creating the proper release notes for it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145281 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 21:31:55 +00:00
Kostya Serebryany ce98c9b1a5 First version of AddressSanitizer docs; documentation for __has_feature(address_sanitizer)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145276 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 20:51:02 +00:00
Richard Smith 855746bfab Add a release notes section on new C++11 language features, and flesh it out.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145268 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 20:02:05 +00:00
Chandler Carruth c6f2af3494 Add a proper blurb for the PPCallbacks features.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145261 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 19:17:25 +00:00
Chandler Carruth a621065995 This doesn't really seem worthy of a relnote... Shout if you disagree!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145259 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 19:11:25 +00:00
Chandler Carruth 7d727b79b0 Fill in a section for the instantiation -> expansion rename. Not great,
but better.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145258 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 19:06:34 +00:00
Chandler Carruth c4dbffa863 Add proper text for the Diagnostic API changes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145257 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 18:55:47 +00:00
Douglas Gregor a1e3e8c94e Add a release note for Objective-C related result types
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145252 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 17:51:39 +00:00
Douglas Gregor 7c304c4fea Note that code completion now works better for in-class member functions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145251 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 17:50:36 +00:00
Chandler Carruth 7a1f148710 And that completes my sweep through commits for things that might be
worth noting in the release notes. These remain raw notes. I'll be
re-writing them into nice prose first thing tomorrow, with help from
others. A couple of notes for any reading the commits:

If you don't see something that should be mentioned, feel free to add
a note (or even a nicely written section) about it! I haven't really
done the static analyzer justice here as I don't really know what the
significant changes are other than mile-high stuff like watching it grow
C++ support and a more robust CFG. I also worry I've missed important
stuff in the Objective-C world.

If you see something that isn't worth mentioning, just delete it. I know
there are several things like this. I plan to prune the list down as
I flesh things out.

If you're name or email is on a bullet, I'll likely be sending you an
email asking for any input on that subject. For many of these I can fill
in something generic, and I'll just want you to give it a once-over.
However, if you have time, feel free to just write the blurb yourself
and drop it in, or drop it in an email to me.

Finally, *WOW* has a lot happened in Clang... I shouldn't have dreaded
(and put off) this so much, it was kind of awesome to go back and watch
the evolution. Anyways, these should be in a reasonable draft state
early tomorrow.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145247 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 13:02:29 +00:00
Chandler Carruth 7717ce4c45 Finished with August's commits, and actually added a clearly missing
section on libclang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145246 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 12:24:23 +00:00
Chandler Carruth 5d46a50128 July's notes..
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145245 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 12:24:21 +00:00
Chandler Carruth b6a1d9d3f6 July was a bit quiet to... except for ARC. ;]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145242 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 11:27:33 +00:00
Chandler Carruth bba72a8d05 June was a quiet month... I can't imagine why... ;]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145241 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 10:57:14 +00:00
Chandler Carruth 1af4022b6d Notes through another month... a *really* busy month, but mostly bug
fixing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145237 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 09:43:30 +00:00
Chandler Carruth a3950cc1be Add the first month's commit notes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145236 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 08:41:06 +00:00
Chandler Carruth c00c0c3652 Begin sketching out the Clang release notes. The plan is to link to
these more detailed notes from the primary LLVM release notes for Clang.
This gives us a nice place to flesh out in plenty of detail the major
changes that have happened in Clang land since 2.9.

I've outlined a very rough structure based on the LLVM release notes
structure and what seems like useful divisions in the Clang landscape
(e.g., language-specific stuff is relevant to a narrower audience).

I'll be first converting my brain-dump-ish notes from the commit logs,
and then cleaning here. Suggestions on structure welcome. Typo
corrections, spelling fixes (oh how I'll need them), all welcome; just
commit away.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145233 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 07:16:19 +00:00
David Blaikie 0ff6495662 Fix typo (becuase->because), PR11427
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145117 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-24 00:37:54 +00:00
Richard Smith bdb1018661 Add stub section to the user manual for C++ language features, and document
-ftemplate-depth= and -fconstexpr-depth= in it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145049 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-21 20:54:59 +00:00
NAKAMURA Takumi 0e53df6296 docs/UsersManual.html: Remove obsolete mingw issue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144897 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-17 07:54:13 +00:00
Ted Kremenek 2bbcd5ce37 ARC: make assignment to 'self' within class methods illegal. Fixes <rdar://problem/10416568>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144572 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-14 21:59:25 +00:00
Douglas Gregor 8a0ace669e Fix grammaro
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143633 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-03 18:33:01 +00:00
Tanya Lattner ef84af9d00 Do not create sub_dirs. This breaks the CSS links for the website and produces really long URLS.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143487 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 20:09:03 +00:00
Douglas Gregor f695a6952f Add __has_feature(cxx_defaulted_functions) for querying "defaulted
functions", from Michel Morin!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143411 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-01 01:19:34 +00:00
David Blaikie 5090e9f96e Update documentation to use "C++11" instead of "C++0x"
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142339 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18 05:49:30 +00:00
Bill Wendling 5ca2abb3b5 Enable CREATE_SUBDIRS for a performance win, because there are a lot of files being generated.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142113 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-16 06:43:18 +00:00
Peter Collingbourne 967c118b30 Internals manual: eliminate mention of System library
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142074 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-15 16:59:24 +00:00
Peter Collingbourne fd5f6866a7 Add c_alignas and cxx_alignas features
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142020 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14 23:44:46 +00:00
Douglas Gregor d1cb2dc9a3 Fix grammaro
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141927 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14 00:54:15 +00:00
Ted Kremenek d768150ef5 Implement built-in macro '__has_warning', which allows one to query if a warning flag is valid. Fixes <rdar://problem/10263428>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141802 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-12 19:46:30 +00:00
Douglas Gregor 4a8dfb511e Introduce BalancedDelimiterTracker, to better track open/close
delimiter pairs and detect when we exceed the implementation limit for
nesting depth, from Aaron Ballman!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141782 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-12 16:37:45 +00:00
Daniel Dunbar 92d6d40483 Driver: Add support for a new -nostdlibinc option.
- This disables the system include directories, but not the compiler builtin
   directories. Useful for projects that want to use things like the intrinsic
   headers, but are otherwise freestanding.

 - I'm willing to reconsider the option naming, I also considered providing an
   explicit -builtinc (which would match -nobuiltininc), but this is more
   consistent with existing options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141692 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11 18:20:16 +00:00
Sebastian Redl 72a81d239d Now that we support move generation, mention this in the language extension and C++ status pages. Also update the C++ status for default functions, which are complete now that we can generate move functions, and destructor exception specifications, which I did a while ago.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141558 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10 18:10:00 +00:00
Daniel Dunbar 26e0b30455 Revert my --working-directory option, which wasn't well thought through.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140889 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-30 21:33:09 +00:00
Douglas Gregor 1f634c6dc9 Add a section detailing the steps required to add an expression or
statement to Clang.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140888 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-30 21:32:37 +00:00
Daniel Dunbar 63bc59bf22 Driver: Add a --working-directory option which can be used to cause the compiler
to operate "as if" in a certain working directory.
 - For now, we just implement this by changing the actual working directory, but
   eventually we would want to handle this transparently. This is useful to
   avoid an extra exec() pair in some situations, and will be something we would
   want to support for more flexibility in using the Clang libraries.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140409 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-23 20:33:41 +00:00
Eli Friedman 0c706c29f2 Add list initialization for complex numbers in C. Essentially, this allows "_Complex float x = {1.0f, 2.0f};". See changes to docs/LanguageExtensions.html for a longer description.
<rdar://problem/9397672>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140090 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19 23:17:44 +00:00
Douglas Gregor aebb653a28 Document __has_feature(objc_instancetype).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139299 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08 17:19:31 +00:00
Douglas Gregor 5471bc85b6 Allow C++0x enumerations with a fixed underlying type in
Objective-C. The @encode'ing of such an enumeration type is the same
as its underlying type. <rdar://problem/5276348>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139297 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08 17:18:35 +00:00
Douglas Gregor e97179c675 Implement the Objective-C 'instancetype' type, which is an alias of
'id' that can be used (only!) via a contextual keyword as the result
type of an Objective-C message send. 'instancetype' then gives the
method a related result type, which we have already been inferring for
a variety of methods (new, alloc, init, self, retain). Addresses
<rdar://problem/9267640>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139275 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08 01:46:34 +00:00
Douglas Gregor dad879a783 Update mingw-w64 part of the user manual, from Ruben Van Boxem!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138788 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-30 00:40:12 +00:00
Douglas Gregor ece3894a9f Add and document __has_feature values for the remaining C++0x
features, so clients can check for the availability of these features
even before we get around to implementing them.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138741 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-29 17:28:38 +00:00
Ted Kremenek f391fa7265 Add documentation on -Weverything.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137911 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-18 01:17:05 +00:00
NAKAMURA Takumi b9326ec09d docs/doxygen.css: Import .memitem, .memproto and .memdoc from llvm/doxygen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137435 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 06:24:04 +00:00
Caitlin Sadowski b51e0315d4 Thread Safety: Added basic argument parsing for all new attributes.
This patch special cases the parser for thread safety attributes so that all
attribute arguments are put in the argument list (instead of a special
parameter) since arguments may not otherwise resolve correctly without two-token
lookahead.

This patch also adds checks to make sure that attribute arguments are
lockable objects.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137130 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09 17:59:31 +00:00
Sean Hunt e1f6dea1c9 Add a __has_feature macro for generalized initializers, turned off
because we don't support them yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137027 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-07 00:34:32 +00:00
Caitlin Sadowski db33e14661 Added basic parsing for all remaining attributes, thread safety
analysis. This includes checking that the attributes are applied in the
correct contexts and with the correct number of arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136383 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-28 20:12:35 +00:00
Caitlin Sadowski 73cbbc8d78 Thread safety: Fix typo in documentation
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136370 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-28 18:38:36 +00:00
Caitlin Sadowski fdde9e719a Added parsing for guarded_var, pt_guarded_var, lockable,
scoped_lockable, and no_thread_safety_analysis attributes, all for thread safety analysis

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136364 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-28 17:21:07 +00:00
John McCall dc7c5ad7a1 Document the existing objc_precise_lifetime attribute.
Introduce and document a new objc_returns_inner_pointer
attribute, and consume it by performing a retain+autorelease
on message receivers when they're not immediately loaded from
an object with precise lifetime.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135764 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-22 08:53:00 +00:00
Sean Hunt 1fba8281b9 Thanks to Chandler for reminding me to update the documentation for the
__underlying_type feature.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135402 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-18 17:22:33 +00:00
John McCall 4f264950e5 Document the behavior of property modifiers in ARC.
rdar://problem/9768338



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135104 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13 23:15:32 +00:00
David Chisnall c51af6ce4c Fix another typo (int -> id for captured_obj).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134998 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-12 20:34:06 +00:00
David Chisnall cfe1f05191 Fix example: variable is initialized to 10 and then has 11 stored in it, but in the expanded version is initialized to 11.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134610 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-07 09:49:59 +00:00
John McCall 2fad7838c0 Move and elaborate the section on objc_arc_weak_unavailable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134567 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-07 00:03:42 +00:00
Fariborz Jahanian a236c0e47a Update document for objc_arc_weak_unavailable attribute
on class declarations. Documentation for // rdar://9693477


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134558 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-06 22:56:44 +00:00
Fariborz Jahanian acd4aaf69e Update document on use of ns_returns_not_retained
attribute on property. Document for // rdar://9636091.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134556 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-06 22:47:46 +00:00
Fariborz Jahanian a26b2e5ab6 Update documentation for // rdar://9619861
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134544 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-06 21:58:44 +00:00
Jonathan D. Turner d322429a1f Update docs to remove reference to OverloadedFunctionDecl and replace it with DeclContext::lookup_result.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134514 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-06 18:12:36 +00:00
Chris Lattner de7738c14d fix typo
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134361 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-03 02:21:48 +00:00
Douglas Gregor 0e5abb8479 Remove reference to the Index library
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134238 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-01 16:35:47 +00:00
Benjamin Kramer c3151c4328 Remove doxygen.cfg to prevent accidental commits, it is generated from doxygen.cfg.in.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134072 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-29 16:22:39 +00:00
Evan Cheng 1df396d85d Revert accidental commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134052 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-29 01:23:25 +00:00
Evan Cheng 693769cafc SubtargetFeature.h has been moved to MC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134050 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-29 01:14:32 +00:00
Sean Hunt d96249971d Add documentation about __has_feature(cxx_delegationg_constructors)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133693 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 06:11:37 +00:00
Sean Hunt 64f857b4ef Fix a minor copy-paste-o that broke the stylesheets
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133678 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 01:22:53 +00:00
Sean Hunt 7e98b477de Fix a bunch of HTML compliance problems with LanguageExtensions.html
One weird thing is the addition of several <a name=""> tags where
previously there were id attributes on the <h3> tags. This is because
the id attribute must begin with a letter, not an underscore. The name
attribute is not so constrained, so links will continue to work.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133677 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 01:21:01 +00:00
Sean Hunt 647ba1bc2e Revert "-fexceptions does not, in fact, enable C++ exceptions"
In fact it does. For the driver anyway, and not cc1 which I'm supposed
to pretend doesn't exist.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133673 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 00:42:53 +00:00
Sean Hunt 4b4ba8b1d4 -fexceptions does not, in fact, enable C++ exceptions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133666 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-22 23:49:12 +00:00
John McCall 085d09d143 More clarifications.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133387 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-19 10:12:24 +00:00
John McCall 3914a306e4 Improve the intro to the runtime-functions section.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133386 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-19 09:59:33 +00:00
John McCall 98a48cf99d Describe the ARC runtime support calls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133385 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-19 09:36:02 +00:00
John McCall be16b8986e Clarify the semantics of init methods, and point out a few places
where mismatched semantics can cause undefined behavior.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133341 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-18 08:15:19 +00:00
John McCall f3d08a6882 A couple of minor changes to the ARC spec, plus a new section
specifying that retain/release/autorelease/retainCount are forbidden,
plus a section talking about the behavior of dealloc.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133340 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-18 07:31:30 +00:00
Douglas Gregor 4020caec54 Objective-C++ ARC: eliminate the utterly unjustified loophole that
silently dropped ownership qualifiers that were being applied to
ownership-qualified, substituted type that was *not* a substituted
template type parameter. We now provide a diagnostic in such cases,
and recover by dropping the added qualifiers.

Document this behavior in the ARC specification.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133309 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 23:16:24 +00:00
Douglas Gregor 54fb28ad4a Fix a grammaro
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133304 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 22:19:27 +00:00
Douglas Gregor e559ca1672 Objective-ARC++: infer template type arguments of
ownership-unqualified retainable object type as __strong. This allows
us to write, e.g.,

  std::vector<id>

and we'll infer that the vector's element types have __strong
ownership semantics, which is far nicer than requiring:

  std::vector<__strong id>

Note that we allow one to override the ownership qualifier of a
substituted template type parameter, e.g., given

  template<typename T>
  struct X {
    typedef __weak T type;
  };

X<id> is treated the same as X<__strong id>. At instantiation type,
the __weak in "__weak T" overrides the (inferred or specified)
__strong on the template argument type, so that we can still provide
metaprogramming transformations.

This is part of <rdar://problem/9595486>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133303 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 22:11:49 +00:00
John McCall f85e193739 Automatic Reference Counting.
Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.

Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133103 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 23:02:42 +00:00
John McCall 8246702d0c The specification document for the new ObjC Automatic Reference Counting
feature.

Implementation to follow. :)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133090 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 21:21:53 +00:00
Chris Lattner f069c9ede9 remove the index page, we have dox now!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133087 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 21:13:48 +00:00
Chris Lattner 741be6a49f mention new VLA behavior in gnu* vs c* mode dox.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133030 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 00:41:40 +00:00
Blaine Garst c31e0169b8 fix example as per rdar://problem/9461587
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133012 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 21:41:00 +00:00
Eli Friedman 248f973492 Update extensions section of the docs to account for wacky gcc stuff we did end up implementing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132947 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 23:12:01 +00:00
Douglas Gregor 926df6cfab Implement Objective-C Related Result Type semantics.
Related result types apply Cocoa conventions to the type of message
sends and property accesses to Objective-C methods that are known to
always return objects whose type is the same as the type of the
receiving class (or a subclass thereof), such as +alloc and
-init. This tightens up static type safety for Objective-C, so that we
now diagnose mistakes like this:

t.m:4:10: warning: incompatible pointer types initializing 'NSSet *'
with an
      expression of type 'NSArray *' [-Wincompatible-pointer-types]
  NSSet *array = [[NSArray alloc] init];
         ^       ~~~~~~~~~~~~~~~~~~~~~~
/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:72:1:
note: 
      instance method 'init' is assumed to return an instance of its
      receiver
      type ('NSArray *')
- (id)init;
^

It also means that we get decent type inference when writing code in
Objective-C++0x:

  auto array = [[NSMutableArray alloc] initWithObjects:@"one",  @"two",nil];
  //    ^ now infers NSMutableArray* rather than id




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132868 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-11 01:09:30 +00:00
Ted Kremenek 052fe84f90 Remove derelict documentation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132407 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-01 17:45:02 +00:00
Argyrios Kyrtzidis 477aab6782 A StringRef-ication of the DiagnosticIDs API and internals.
Patch by Matthieu Monrocq with tweaks by me to avoid StringRefs in the static
diagnostic data structures, which resulted in a huge global-var-init function.

Depends on llvm commit r132046.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132047 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-25 05:05:01 +00:00
Douglas Gregor 84ee2eeec9 Audit and finish the implementation of C++0x nullptr, fixing two
minor issues along the way:
  - Non-type template parameters of type 'std::nullptr_t' were not
  permitted.
  - We didn't properly introduce built-in operators for nullptr ==,
  !=, <, <=, >=, or > as candidate functions .

To my knowledge, there's only one (minor but annoying) part of nullptr
that hasn't been implemented: catching a thrown 'nullptr' as a pointer
or pointer-to-member, per C++0x [except.handle]p4.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131813 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-21 23:15:46 +00:00
Douglas Gregor c9471b0ff1 Introduce the -fdiagnostics-format=xxx option to control how Clang
prints the file, line, and column of a diagnostic. We currently
support Clang's normal format, MSVC, and Vi formats.

Note that we no longer change the diagnostic format based on
-fms-extensions.

Patch by Andrew Fish!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131794 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-21 17:07:29 +00:00
Peter Collingbourne c1b5fa41f0 Introduce __has_extension macro
__has_extension is a function-like macro which takes the same set
of feature identifiers as __has_feature.  It evaluates to 1 if the
feature is supported by Clang in the current language (either as a
language extension or a standard language feature) or 0 if not.

At the same time, add support for the C1X feature identifiers
c_generic_selections (renamed from generic_selections) and
c_static_assert, and document them.

Patch by myself and Jean-Daniel Dupas.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131308 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-13 20:54:45 +00:00
Peter Collingbourne 04bb657076 Delete doxygen.cfg, and use cwd-relative paths in doxygen.cfg.in.
Now "make doxygen" works for clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131282 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-13 03:29:06 +00:00
Douglas Gregor 7822ee3ef9 Implement CWG1170, which makes access-control errors into template
argument deduction failures. Only implemented in C++0x, since this is
a significant change in behavior from C++98/03.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131209 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-11 23:45:11 +00:00
Richard Smith 3e4c6c4c79 Implement support for C++0x alias templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130953 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-05 21:57:07 +00:00
Chad Rosier e2bb7b9307 Documentation for -Oz; Updated synopsis and item.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130570 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-30 02:04:10 +00:00
Chad Rosier 4525ae5cd5 Add documentation for -Oz flag.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130569 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-30 01:40:58 +00:00
Richard Smith a391a4642c Add __has_feature(cxx_range_for) check for C++11 range-based for loop.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129573 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15 15:14:40 +00:00
Chris Lattner fc8f0e14ad fix a bunch of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129559 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15 05:22:18 +00:00
Peter Collingbourne f111d93572 C1X: implement generic selections
As an extension, generic selection support has been added for all
supported languages.  The syntax is the same as for C1X.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129554 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15 00:35:48 +00:00
Chris Lattner 23aa9c8ca0 add a __sync_swap builtin to fill out the rest of the __sync builtins.
Patch by Dave Zarzycki!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129189 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-09 03:57:26 +00:00
Chris Lattner 02e266bf27 typo fix + expand
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129167 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-08 22:58:43 +00:00
Evan Cheng 4cf4b59e90 Minor format fix.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129164 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-08 22:34:21 +00:00
Evan Cheng fda026bc46 Document -ftrap-function= option
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129162 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-08 22:18:01 +00:00
NAKAMURA Takumi ddf68ff6fa docs/UsersManual.html: Fix some inconsistent HTML elements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128876 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 04:31:31 +00:00
NAKAMURA Takumi 4462636bcb docs/UsersManual.html: "&quot;"ize in a paragraph. A few unpaired quotations might confuse HTML-aware text edtors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128871 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 00:57:02 +00:00
NAKAMURA Takumi a75fdb2884 docs/UsersManual.html: Add cygming notes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128819 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-04 15:02:41 +00:00
Anders Carlsson c8b9f79770 we can now claim to fully support the override control feature in C++0x.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128281 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-25 15:04:23 +00:00
Chris Lattner c70e193052 and now there are 3!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128001 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-21 16:25:11 +00:00
Peter Collingbourne 38448d3ae8 Code modification hints have been known as fix-it hints for almost
a year now.  Update the internals manual.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127983 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-21 01:45:18 +00:00
Ted Kremenek 1761ce57d6 Remove '-Xclang' and '-mllvm' entries from Clang man page. The later is only available in debug builds and the former is not supposed to be used by end-users.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127914 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-18 22:11:40 +00:00
John McCall 87494017b8 Improve the documentation for some of the analyzer attributes I added
a while back.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127866 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-18 03:51:49 +00:00
Sebastian Redl 4561ecdf27 Create __has_feature(cxx_noexcept) and mark it as working.
Find out that our C++0x status has only one field for noexcept expression and specification together, and that it was accidentally already marked as fully implemented.
This completes noexcept specification work.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127701 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-15 21:17:12 +00:00
Peter Collingbourne 84021556ba Rename tok::eom to tok::eod.
The previous name was inaccurate as this token in fact appears at
the end of every preprocessing directive, not just macro definitions.
No functionality change, except for a diagnostic tweak.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126631 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-28 02:37:51 +00:00
Richard Smith fd405efea1 Update the www to indicate that auto is now implemented.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126280 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23 00:41:16 +00:00
Chris Lattner 98559672cf we now support __label__
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125826 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18 04:12:08 +00:00
Chris Lattner cc2ac1ea54 fix two broken links and some out of date writing, PR9174
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125484 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 06:42:50 +00:00
Douglas Gregor 0750800623 Add a __has_feature check for default template arguments in function
templates, a C++0x feature.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124973 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-05 20:35:30 +00:00
Douglas Gregor afdf137c50 Add __has_feature() for each of the type traits
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124820 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-03 21:57:35 +00:00
Jeffrey Yasskin 28dadd6c88 Document how to add an attribute to clang. This should be reviewed by someone
who actually knows how it works.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124506 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-28 23:41:54 +00:00
Jeffrey Yasskin b7ee2e5cc9 Revert r124217 because it didn't catch the actual error case it was trying to
catch:

  lock_guard(my_mutex);

declares a variable instead of creating a temporary.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124398 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-27 19:17:54 +00:00
Douglas Gregor 56209ffed2 Add __has_feature(cxx_reference_qualified_functions); update tests and
documentation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124322 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-26 21:25:54 +00:00
Jeffrey Yasskin c60e13aeff Add an attribute to forbid temporary instances of a type. This allows class
authors to write 

  class __attribute__((forbid_temporaries)) Name { ... };

when they want to force users to name all variables of the type. This protects
people from doing things like creating a scoped_lock that only lives for a
single statement instead of an entire scope.

The warning produced by this attribute can be disabled by
-Wno-forbid-temporaries.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124217 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-25 20:08:12 +00:00
John McCall 630b7aefc8 Document the ns_returns_retained, ns_consumed, etc. attributes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124176 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-25 04:26:21 +00:00
Douglas Gregor 2594bf96dc Eliminate the last reference to concepts, from Jean-Daniel Dupas
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124118 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-24 15:22:41 +00:00
Anders Carlsson 961003d432 Fix the __has_attribute example; we don't have an override attribute anymore.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124106 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-24 03:54:51 +00:00
Chris Lattner d462b6afcd fix some typos, patch by Jonathan Wakely!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124105 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-24 03:47:59 +00:00
Chris Lattner 4e1c53deea fix a broken example, PR9005, patch by Jonathan Wakely!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124104 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-24 03:47:34 +00:00
Chris Lattner 40d5eb4940 remove some crazy leftover thing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124098 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-24 02:53:58 +00:00
Douglas Gregor 83d7781f9d Eradicate any mention of C++0x concepts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123860 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-19 23:15:20 +00:00
Bob Wilson 4ea8dfa5d6 NEON vector support for ARM is in pretty good shape now. Update the docs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123183 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-10 17:55:14 +00:00
Douglas Gregor d3b227dda9 Fix documentation typo, from nobled.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121768 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-14 16:21:49 +00:00