]> granicus.if.org Git - clang/log
clang
13 years agoAdd returns_twice to functions that are known to return twice. This implements
Rafael Espindola [Wed, 12 Oct 2011 19:51:18 +0000 (19:51 +0000)]
Add returns_twice to functions that are known to return twice. This implements
the same behavior of gcc by keeping the attribute out of the function type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141803 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement built-in macro '__has_warning', which allows one to query if a warning...
Ted Kremenek [Wed, 12 Oct 2011 19:46:30 +0000 (19:46 +0000)]
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

13 years agoSwitch diagnostic text from "C++0x" over to "C++11".
Douglas Gregor [Wed, 12 Oct 2011 19:26:40 +0000 (19:26 +0000)]
Switch diagnostic text from "C++0x" over to "C++11".

We'd also like for "C++11" or "c++11" to be used for the warning
groups, but without removing the old warning flags. Patches welcome;
I've run out of time to work on this today.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141801 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWe do parse hexfloats in C++11; make it actually work.
Douglas Gregor [Wed, 12 Oct 2011 18:51:02 +0000 (18:51 +0000)]
We do parse hexfloats in C++11; make it actually work.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141798 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert file/scope handling patches. gdb testing revealed a couple of bugs.
Eric Christopher [Wed, 12 Oct 2011 18:39:35 +0000 (18:39 +0000)]
Revert file/scope handling patches. gdb testing revealed a couple of bugs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141796 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThe Objective-C rewriter uses the fragile ABI, always.
Douglas Gregor [Wed, 12 Oct 2011 18:28:53 +0000 (18:28 +0000)]
The Objective-C rewriter uses the fragile ABI, always.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141795 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix typo in name of diagnostic.
Ted Kremenek [Wed, 12 Oct 2011 18:03:37 +0000 (18:03 +0000)]
Fix typo in name of diagnostic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141793 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoHandle the case where preprocessor entities are not received in order,
Argyrios Kyrtzidis [Wed, 12 Oct 2011 17:36:33 +0000 (17:36 +0000)]
Handle the case where preprocessor entities are not received in order,
fixes http://llvm.org/PR11120

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141788 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd -std=c++11 and -std=gnu++11 language flags, from Ahmed Charles
Douglas Gregor [Wed, 12 Oct 2011 17:32:39 +0000 (17:32 +0000)]
Add -std=c++11 and -std=gnu++11 language flags, from Ahmed Charles

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141785 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIntroduce BalancedDelimiterTracker, to better track open/close
Douglas Gregor [Wed, 12 Oct 2011 16:37:45 +0000 (16:37 +0000)]
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

13 years agoTeach __has_nothrow_assign not to complain about access (GCC and EDG
Douglas Gregor [Wed, 12 Oct 2011 15:40:49 +0000 (15:40 +0000)]
Teach __has_nothrow_assign not to complain about access (GCC and EDG
ignore access entirely for it) and not to crash on assignment operator
templates. Fixes PR11110.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141777 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemoved extra line in comment.
Jim Goodnow II [Wed, 12 Oct 2011 09:55:01 +0000 (09:55 +0000)]
Removed extra line in comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141773 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd target info for Linux on PPC & Sparc.
Anton Korobeynikov [Wed, 12 Oct 2011 09:30:58 +0000 (09:30 +0000)]
Add target info for Linux on PPC & Sparc.
Patch by Hal Finkel!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141772 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIntroduce SourceManager::getFileLoc which returns a file location
Argyrios Kyrtzidis [Wed, 12 Oct 2011 07:07:40 +0000 (07:07 +0000)]
Introduce SourceManager::getFileLoc which returns a file location
taking into account macro arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141771 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[libclang] Allow using getDeclCursorUSR function with a Decl* and not a cursor.
Argyrios Kyrtzidis [Wed, 12 Oct 2011 07:07:36 +0000 (07:07 +0000)]
[libclang] Allow using getDeclCursorUSR function with a Decl* and not a cursor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141770 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[libclang] Make MakeCXTranslationUnit usable outside CIndex.cpp.
Argyrios Kyrtzidis [Wed, 12 Oct 2011 07:07:33 +0000 (07:07 +0000)]
[libclang] Make MakeCXTranslationUnit usable outside CIndex.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141769 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoconstexpr: don't consider class types with mutable members to be literal types.
Richard Smith [Wed, 12 Oct 2011 05:08:15 +0000 (05:08 +0000)]
constexpr: don't consider class types with mutable members to be literal types.

The standard doesn't allow this, but mutable constexpr variables break the
semantics so badly that we can't reasonably accept them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141768 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemember to set the location in EmitGlobalVariable to the current decl
Eric Christopher [Wed, 12 Oct 2011 01:11:30 +0000 (01:11 +0000)]
Remember to set the location in EmitGlobalVariable to the current decl
if we're going to delete the setLocation as we did in 141732.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141762 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoHandle Perforce-style conflict markers like normal conflict markers. Perforce
Richard Smith [Wed, 12 Oct 2011 00:37:51 +0000 (00:37 +0000)]
Handle Perforce-style conflict markers like normal conflict markers. Perforce
swaps over the <<<< and >>>> markers, and uses shorter markers than traditional
tools.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141751 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoobjc: note location of the previously declared
Fariborz Jahanian [Wed, 12 Oct 2011 00:00:57 +0000 (00:00 +0000)]
objc: note location of the previously declared
property in the diagnostic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141745 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCatch placeholder types in DefaultLvalueConversion
John McCall [Tue, 11 Oct 2011 23:14:30 +0000 (23:14 +0000)]
Catch placeholder types in DefaultLvalueConversion
and DefaultFunctionArrayLvalueConversion.  To prevent
significant regression for should-this-be-a-call fixits,
and to repair some such regression from the introduction of
bound member placeholders, make those placeholder checks
try to build calls appropriately.  Harden the build-a-call
logic while we're at it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141738 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoobjc rewriter: Restore objc_msgSend_stret/objc_msgSendSuper_stret declaration
Fariborz Jahanian [Tue, 11 Oct 2011 23:02:37 +0000 (23:02 +0000)]
objc rewriter: Restore objc_msgSend_stret/objc_msgSendSuper_stret declaration
to their fragile-abi representation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141735 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoStart handling debug line and scope information better:
Eric Christopher [Tue, 11 Oct 2011 23:00:55 +0000 (23:00 +0000)]
Start handling debug line and scope information better:

Migrate most of the location setting within the larger API in CGDebugInfo and
update a lot of callers.
Remove the existing file/scope change machinery in UpdateLineDirectiveRegion
and replace it with DILexicalBlockFile usage.

Finishes off the rest of rdar://10246360

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141732 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago80-column and tab cleanup.
Eric Christopher [Tue, 11 Oct 2011 23:00:51 +0000 (23:00 +0000)]
80-column and tab cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141731 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReorder this to make it easier to add more changes for a location set.
Eric Christopher [Tue, 11 Oct 2011 23:00:45 +0000 (23:00 +0000)]
Reorder this to make it easier to add more changes for a location set.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141730 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPR11062: Make C99 inlining work properly for names with associated builtin libcalls.
Eli Friedman [Tue, 11 Oct 2011 22:09:24 +0000 (22:09 +0000)]
PR11062: Make C99 inlining work properly for names with associated builtin libcalls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141723 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix test: don't use __thread without a target triple.
Richard Smith [Tue, 11 Oct 2011 21:51:31 +0000 (21:51 +0000)]
Fix test: don't use __thread without a target triple.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141719 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoConstant expression evaluation: refactor value initialization and scalar list initial...
Richard Smith [Tue, 11 Oct 2011 21:43:33 +0000 (21:43 +0000)]
Constant expression evaluation: refactor value initialization and scalar list initialization into base class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141717 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSilence some -Wuninitialized false positives with gcc.
Eli Friedman [Tue, 11 Oct 2011 20:00:47 +0000 (20:00 +0000)]
Silence some -Wuninitialized false positives with gcc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141701 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a -Wc++0x-compat warning for C++11 keywords used as identifiers when in
Richard Smith [Tue, 11 Oct 2011 19:57:52 +0000 (19:57 +0000)]
Add a -Wc++0x-compat warning for C++11 keywords used as identifiers when in
C++98 mode. Only the first occurrence of each keyword will produce a warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141700 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd support for viewing the module graph via Graphviz, for debugging
Douglas Gregor [Tue, 11 Oct 2011 19:27:55 +0000 (19:27 +0000)]
Add support for viewing the module graph via Graphviz, for debugging
purposes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141697 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDriver: Add support for a new -nostdlibinc option.
Daniel Dunbar [Tue, 11 Oct 2011 18:20:16 +0000 (18:20 +0000)]
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

13 years agoFrontend: Replace -nostdinc by -nostdsysteminc (which is just system include
Daniel Dunbar [Tue, 11 Oct 2011 18:20:10 +0000 (18:20 +0000)]
Frontend: Replace -nostdinc by -nostdsysteminc (which is just system include
paths). The -nostdinc behavior is now -nostdsysteminc + -nobuiltininc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141691 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[analyzer] Remove an unused member variable.
Anna Zaks [Tue, 11 Oct 2011 18:19:20 +0000 (18:19 +0000)]
[analyzer] Remove an unused member variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141690 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename SemaCXXCast.cpp to SemaCast.cpp.
John McCall [Tue, 11 Oct 2011 17:38:55 +0000 (17:38 +0000)]
Rename SemaCXXCast.cpp to SemaCast.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141686 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd more testing for -Wc++0x-compat warnings.
Richard Smith [Tue, 11 Oct 2011 17:38:48 +0000 (17:38 +0000)]
Add more testing for -Wc++0x-compat warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141685 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[analyzer] CheckerContext updates checkDst in it's destructor, so make sure the objec...
Anna Zaks [Tue, 11 Oct 2011 17:29:59 +0000 (17:29 +0000)]
[analyzer] CheckerContext updates checkDst in it's destructor, so make sure the object is destructed before checkDst is used.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141683 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFor the FileChanged Preprocessor callback, when exiting a file, pass its FileID.
Argyrios Kyrtzidis [Tue, 11 Oct 2011 17:29:44 +0000 (17:29 +0000)]
For the FileChanged Preprocessor callback, when exiting a file, pass its FileID.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141681 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd an explanatory comment to test/SemaCXX/typo-correction.cpp
Kaelyn Uhrain [Tue, 11 Oct 2011 17:17:40 +0000 (17:17 +0000)]
Add an explanatory comment to test/SemaCXX/typo-correction.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141680 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[analyzer] Fix a typo.
Anna Zaks [Tue, 11 Oct 2011 16:49:54 +0000 (16:49 +0000)]
[analyzer] Fix a typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141678 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoGet rid of ShouldDeleteMoveConstructor.
Sean Hunt [Tue, 11 Oct 2011 06:43:29 +0000 (06:43 +0000)]
Get rid of ShouldDeleteMoveConstructor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141650 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoConsolidate copy constructor deletion into ShouldDeleteSpecialMember.
Sean Hunt [Tue, 11 Oct 2011 04:55:36 +0000 (04:55 +0000)]
Consolidate copy constructor deletion into ShouldDeleteSpecialMember.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141645 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[analyzer] Warn about the use of insecure, deprecated vfork() function PR11053 (http...
Anna Zaks [Tue, 11 Oct 2011 04:34:54 +0000 (04:34 +0000)]
[analyzer] Warn about the use of insecure, deprecated vfork() function PR11053 (http://llvm.org/bugs/show_bug.cgi?id=11053).

A patch by Graham Lee!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141643 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAllow regparm attribute for PNaCl target
David Meyer [Tue, 11 Oct 2011 03:12:01 +0000 (03:12 +0000)]
Allow regparm attribute for PNaCl target

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141638 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoInitial implementation of __atomic_* (everything except __atomic_is_lock_free).
Eli Friedman [Tue, 11 Oct 2011 02:20:01 +0000 (02:20 +0000)]
Initial implementation of __atomic_* (everything except __atomic_is_lock_free).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141632 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[Microsoft] If -fms-compatibility, then downgrade missing typename error to warning...
Francois Pichet [Tue, 11 Oct 2011 01:50:09 +0000 (01:50 +0000)]
[Microsoft] If -fms-compatibility, then downgrade missing typename error to warning at function prototype scope.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141630 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdded natural stack alignment to target-data.c test case.
Lang Hames [Tue, 11 Oct 2011 01:06:28 +0000 (01:06 +0000)]
Added natural stack alignment to target-data.c test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141622 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd typo correction for type names.
Kaelyn Uhrain [Tue, 11 Oct 2011 01:02:41 +0000 (01:02 +0000)]
Add typo correction for type names.

The main motivation was to do typo correction in C++ "new" statements,
though picking it up in other places where type names are expected was
pretty much a freebie.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141621 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPlace diagnostic group ext_typecheck_decl_incomplete_type under a -W flag.
Ted Kremenek [Tue, 11 Oct 2011 01:02:24 +0000 (01:02 +0000)]
Place diagnostic group ext_typecheck_decl_incomplete_type under a -W flag.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141620 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed natural stack alignment for Linux x86-32. Thanks Eli.
Lang Hames [Tue, 11 Oct 2011 00:52:51 +0000 (00:52 +0000)]
Fixed natural stack alignment for Linux x86-32. Thanks Eli.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141617 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoClean up DiagnoseInvalidRedeclaration a bit
Kaelyn Uhrain [Tue, 11 Oct 2011 00:28:52 +0000 (00:28 +0000)]
Clean up DiagnoseInvalidRedeclaration a bit

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141612 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove a couple chunks of ActOnFunctionDeclarator to separate functions
Kaelyn Uhrain [Tue, 11 Oct 2011 00:28:49 +0000 (00:28 +0000)]
Move a couple chunks of ActOnFunctionDeclarator to separate functions

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141611 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove some bool flags out of function parameter lists.
Kaelyn Uhrain [Tue, 11 Oct 2011 00:28:45 +0000 (00:28 +0000)]
Move some bool flags out of function parameter lists.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141610 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoOnly accept a typo correction if it doesn't trigger additional errors
Kaelyn Uhrain [Tue, 11 Oct 2011 00:28:39 +0000 (00:28 +0000)]
Only accept a typo correction if it doesn't trigger additional errors

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141609 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExtend lvalue evaluation in ExprConstant.cpp to handle CK_LValueBitCast (which is...
Eli Friedman [Tue, 11 Oct 2011 00:13:24 +0000 (00:13 +0000)]
Extend lvalue evaluation in ExprConstant.cpp to handle CK_LValueBitCast (which is completely trivial).  PR8836.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141604 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate target data strings for ARM and X86 to include the natural stack
Lang Hames [Mon, 10 Oct 2011 23:44:43 +0000 (23:44 +0000)]
Update target data strings for ARM and X86 to include the natural stack
alignment parameter "S<size>" that was introduced in r141599.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141601 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't crash in Sema::IsSimplyAccessible if the declaration is not a C++ class member...
Douglas Gregor [Mon, 10 Oct 2011 23:44:35 +0000 (23:44 +0000)]
Don't crash in Sema::IsSimplyAccessible if the declaration is not a C++ class member. Fixes PR11108.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141600 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake sure we initialize the "extra" data within the libclang code
Douglas Gregor [Mon, 10 Oct 2011 23:37:54 +0000 (23:37 +0000)]
Make sure we initialize the "extra" data within the libclang code
completion context, in case we end up having no code-completion
callback. Individual instances of this problem are always bugs that
need to be fixed, but it's better to make sure we have initialized
data here.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141598 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoA couple random preprocessor changes that got ported from C99 to C++11.
Eli Friedman [Mon, 10 Oct 2011 23:35:28 +0000 (23:35 +0000)]
A couple random preprocessor changes that got ported from C99 to C++11.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141596 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen performing a user-defined conversion via a constructor, be sure
Douglas Gregor [Mon, 10 Oct 2011 22:41:00 +0000 (22:41 +0000)]
When performing a user-defined conversion via a constructor, be sure
to check whether the constructor is accessible. Fixes
<rdar://problem/10202900>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141588 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[analyzer] Teach the static analyzer about CXXForRangeStmt. Patch by Jim Goodnow II!
Ted Kremenek [Mon, 10 Oct 2011 22:36:31 +0000 (22:36 +0000)]
[analyzer] Teach the static analyzer about CXXForRangeStmt.  Patch by Jim Goodnow II!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141587 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRework construction of CXXForRangeStmt not to recycle the same DeclRefExpr in multipl...
Ted Kremenek [Mon, 10 Oct 2011 22:36:28 +0000 (22:36 +0000)]
Rework construction of CXXForRangeStmt not to recycle the same DeclRefExpr in multiple subexpressions.  This breaks the tree structure
of the AST and completely breaks the CFG invariants.

Patch by Jim Goodnow II and reviewed by Richard Smith!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141586 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[libclang] Do ConcurrencyCheck for clang_getLocation as well.
Argyrios Kyrtzidis [Mon, 10 Oct 2011 21:57:15 +0000 (21:57 +0000)]
[libclang] Do ConcurrencyCheck for clang_getLocation as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141583 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[libclang] Implement ConcurrencyCheck using a recursive mutex to allow re-entrancy...
Argyrios Kyrtzidis [Mon, 10 Oct 2011 21:57:12 +0000 (21:57 +0000)]
[libclang] Implement ConcurrencyCheck using a recursive mutex to allow re-entrancy in the same thread.
The checks are performed only in DEBUG, it becomes no-op in release mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141582 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoobjc: err on a property designated both atomic and
Fariborz Jahanian [Mon, 10 Oct 2011 21:53:24 +0000 (21:53 +0000)]
objc: err on a property designated both atomic and
nonatomic. // rdar://10260017

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141580 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r140009, about disabling clang's builtin in -fms-compatibility mode.
Francois Pichet [Mon, 10 Oct 2011 20:34:10 +0000 (20:34 +0000)]
Revert r140009, about disabling clang's builtin in -fms-compatibility mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141577 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoLink in Scrt1.o instead of crt1.o when -pie is specified.
Roman Divacky [Mon, 10 Oct 2011 19:47:45 +0000 (19:47 +0000)]
Link in Scrt1.o instead of crt1.o when -pie is specified.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141573 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen substituting into a sizeof parameter pack expression in a context
Douglas Gregor [Mon, 10 Oct 2011 18:59:29 +0000 (18:59 +0000)]
When substituting into a sizeof parameter pack expression in a context
where we can't expand (i.e., multi-level substitution), be sure to
substitute the pack with its level-reduced pack. Fixes PR10230.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141568 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPartially revert r141374: allow use of libc++ prior to Mac OS X 10.7.
Bob Wilson [Mon, 10 Oct 2011 18:46:10 +0000 (18:46 +0000)]
Partially revert r141374: allow use of libc++ prior to Mac OS X 10.7.

Apple only supports libc++ on OS X 10.7 and later but for the open-source
compiler that restriction doesn't make sense.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141566 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen an included non-system directory duplicates a system directory the clang
Chad Rosier [Mon, 10 Oct 2011 18:44:24 +0000 (18:44 +0000)]
When an included non-system directory duplicates a system directory the clang
frontend removes the non-system directory to maintain gcc compatibility.  When
this happens NumAngled needs to be updated.
PR11097

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141565 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoConstant expression evaluation refactoring:
Richard Smith [Mon, 10 Oct 2011 18:28:20 +0000 (18:28 +0000)]
Constant expression evaluation refactoring:
 - Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions,
   and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert
   behaviour.
 - Factor out evaluation of bitfield bit widths.
 - Fix a few places which would evaluate an expression twice: once to determine
   whether it is a constant expression, then again to get the value.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141561 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't suggest 'noreturn' for function template instantiations, because
Douglas Gregor [Mon, 10 Oct 2011 18:15:57 +0000 (18:15 +0000)]
Don't suggest 'noreturn' for function template instantiations, because
it might be wrong for other instantiations of the same function
template. Fixes PR10801.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141559 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoNow that we support move generation, mention this in the language extension and C...
Sebastian Redl [Mon, 10 Oct 2011 18:10:00 +0000 (18:10 +0000)]
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

13 years agoGive nicer note when a member redeclaration has or lacks 'const'
Kaelyn Uhrain [Mon, 10 Oct 2011 18:01:37 +0000 (18:01 +0000)]
Give nicer note when a member redeclaration has or lacks 'const'

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141555 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoobjc: Some refactoring of overriding method decl. code
Fariborz Jahanian [Mon, 10 Oct 2011 17:53:29 +0000 (17:53 +0000)]
objc: Some refactoring of overriding method decl. code
for future work.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141553 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't analyze comparisons in type- or value-dependent
Douglas Gregor [Mon, 10 Oct 2011 17:38:18 +0000 (17:38 +0000)]
Don't analyze comparisons in type- or value-dependent
subexpressions. Fixes PR10291.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141552 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPer C++ [class.bit]p2, unnamed bit-fields are not members. Fixes PR10289.
Douglas Gregor [Mon, 10 Oct 2011 17:22:13 +0000 (17:22 +0000)]
Per C++ [class.bit]p2, unnamed bit-fields are not members. Fixes PR10289.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141549 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoconstexpr: Disable checking of constructor member initializer lists for
Richard Smith [Mon, 10 Oct 2011 16:38:04 +0000 (16:38 +0000)]
constexpr: Disable checking of constructor member initializer lists for
constexpr constructor templates. Such checking is optional, and currently hard
to get right since clang doesn't generate implicit member initializers until
instantiation (even for non-dependent members).

This is needed for clang to accept libstdc++ from g++4.6 in c++0x mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141547 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't complain about qualified property or ivar access when the
Douglas Gregor [Mon, 10 Oct 2011 16:09:49 +0000 (16:09 +0000)]
Don't complain about qualified property or ivar access when the
qualifier itself is invalid. Crasher noticed by Fariborz.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141544 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen adding a direct initializer to a declaration, allow the
Douglas Gregor [Mon, 10 Oct 2011 16:05:18 +0000 (16:05 +0000)]
When adding a direct initializer to a declaration, allow the
initializer to update the type of the declaration. For example, this
allows us to determine the size of an incomplete array from its
initializer. Fixes PR10288.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141543 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoParse the initializer for a class member after handling its
Douglas Gregor [Mon, 10 Oct 2011 14:49:18 +0000 (14:49 +0000)]
Parse the initializer for a class member after handling its
declarator, so that the declarator is in scope for the
initializer. Fixes PR9989.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141539 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAlways add the built-in overload candidates for operators &&, ||, and
Douglas Gregor [Mon, 10 Oct 2011 14:05:31 +0000 (14:05 +0000)]
Always add the built-in overload candidates for operators &&, ||, and
!. Fixes PR9865.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141537 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove the TODO file; it's not interesting any more
Douglas Gregor [Mon, 10 Oct 2011 13:43:20 +0000 (13:43 +0000)]
Remove the TODO file; it's not interesting any more

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141536 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAnother case of HadMultipleCandidates being used uninitialized.
Benjamin Kramer [Mon, 10 Oct 2011 12:54:05 +0000 (12:54 +0000)]
Another case of HadMultipleCandidates being used uninitialized.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141532 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoBegin work consolidating ShouldDelete* functions.
Sean Hunt [Mon, 10 Oct 2011 06:18:57 +0000 (06:18 +0000)]
Begin work consolidating ShouldDelete* functions.

Begin with just default constructors. One note is that as a side effect
of this, a conformance test was removed on the basis that this is almost
certainly a defect as with most of union initialization. As it is, clang
does not implement union initialization close to the standard as it's
quite broken as written. I hope to write a paper addressing the issues
eventually.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141528 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoParse LLVM command line arguments after plugins have been loaded
Tobias Grosser [Mon, 10 Oct 2011 01:23:06 +0000 (01:23 +0000)]
Parse LLVM command line arguments after plugins have been loaded

This fixes a crash due to command line options, that are not available
before the loading of plugins finished.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141525 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement the restrictions in C++ [class.friend]p6, which disallow
Douglas Gregor [Mon, 10 Oct 2011 01:11:59 +0000 (01:11 +0000)]
Implement the restrictions in C++ [class.friend]p6, which disallow
defining a friend function with a qualified name or in a local
class. Fixes PR9853.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141524 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDiagnose attempts to qualify the name of an instance variable or
Douglas Gregor [Sun, 9 Oct 2011 23:22:49 +0000 (23:22 +0000)]
Diagnose attempts to qualify the name of an instance variable or
property in an Objective-C++ member access expression. Fixes PR9759.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141522 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPush "out-of-line" declarations into scope when their lexical/semantic
Douglas Gregor [Sun, 9 Oct 2011 22:57:49 +0000 (22:57 +0000)]
Push "out-of-line" declarations into scope when their lexical/semantic
redeclaration contexts are the same, as occurs within linkage
specifications. Fixes PR9162.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141521 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThe effective context of a friend function is its lexical
Douglas Gregor [Sun, 9 Oct 2011 22:38:36 +0000 (22:38 +0000)]
The effective context of a friend function is its lexical
context. Fixes PR9103.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141520 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFor the various CF and NS attributes, don't complain if the parameter
Douglas Gregor [Sun, 9 Oct 2011 22:26:49 +0000 (22:26 +0000)]
For the various CF and NS attributes, don't complain if the parameter
or return types are dependent. Fixes PR9049.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141518 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPer the note in C++0x [temp.deduct.call]p4, don't attempt template
Douglas Gregor [Sun, 9 Oct 2011 22:06:46 +0000 (22:06 +0000)]
Per the note in C++0x [temp.deduct.call]p4, don't attempt template
argument deduction against a function parameter that has no deducible
template parameters in it. Fixes PR8598.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141517 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoOpenCL: add driver/frontend support for precompiled headers
Peter Collingbourne [Sun, 9 Oct 2011 22:03:19 +0000 (22:03 +0000)]
OpenCL: add driver/frontend support for precompiled headers

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141516 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoA friend template specialization is also dependent if any of its
Douglas Gregor [Sun, 9 Oct 2011 20:59:17 +0000 (20:59 +0000)]
A friend template specialization is also dependent if any of its
template arguments are dependent. Fixes PR10913.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141515 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoOnly allow taking the address of an expression of type 'overloaded
Douglas Gregor [Sun, 9 Oct 2011 19:10:41 +0000 (19:10 +0000)]
Only allow taking the address of an expression of type 'overloaded
function type' when that expression is actually an overloaded function
reference (and not the address of an overloaded function
reference). Fixes PR11066.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141514 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDiagnose attempts to declare a non-static data member with a
Douglas Gregor [Sun, 9 Oct 2011 18:55:59 +0000 (18:55 +0000)]
Diagnose attempts to declare a non-static data member with a
non-identifier name. Fixes PR10839.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141513 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen building source location information for an _Atomic type, be sure
Douglas Gregor [Sun, 9 Oct 2011 18:45:17 +0000 (18:45 +0000)]
When building source location information for an _Atomic type, be sure
to fill in the source locations for the underlying value type. Fixes
an intermittent crasher (due to uninitialized data) in the PCH test
for _Atomic types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141512 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAfter instantiating a 'noexcept' expression, be sure to convert it to
Douglas Gregor [Sun, 9 Oct 2011 18:31:23 +0000 (18:31 +0000)]
After instantiating a 'noexcept' expression, be sure to convert it to
a boolean value and check that it is a constant expression. Fixes
PR11084.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141511 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoInitialize the HadMultipleCandidates flag.
Benjamin Kramer [Sun, 9 Oct 2011 17:58:25 +0000 (17:58 +0000)]
Initialize the HadMultipleCandidates flag.

Found by valgrind.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141510 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoobjc: Do not warn about mismatch on Super's readonly property attribute,
Fariborz Jahanian [Sat, 8 Oct 2011 17:45:33 +0000 (17:45 +0000)]
objc: Do not warn about mismatch on Super's readonly property attribute,
related to a readwrite property, and
Sub's readwrite property. // rdar://9396329

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141497 91177308-0d34-0410-b5e6-96231b3b80d8