]> granicus.if.org Git - clang/log
clang
12 years agoC++11 [class.ctor]p5 says that
Douglas Gregor [Fri, 24 Feb 2012 21:25:53 +0000 (21:25 +0000)]
C++11 [class.ctor]p5 says that
  A defaulted default constructor for a class X is defined as deleted if [...]
    -  X is a union and all of its variant members are of const-qualified type.

A pedantic reading therefore says that

 union X { };

has a deleted default constructor, which is both silly and almost
certainly unintended. Pretend as if this this read

    - X is a union with one or more variant members, and all of its
      variant members are of const-qualified type.

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

12 years agoFix comment: correct predicate name, reformat comment.
Dmitri Gribenko [Fri, 24 Feb 2012 20:03:35 +0000 (20:03 +0000)]
Fix comment: correct predicate name, reformat comment.

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

12 years agoChange the text of a FIXME.
Argyrios Kyrtzidis [Fri, 24 Feb 2012 19:45:46 +0000 (19:45 +0000)]
Change the text of a FIXME.

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

12 years ago[libclang] Add a triple to the test.
Argyrios Kyrtzidis [Fri, 24 Feb 2012 19:45:42 +0000 (19:45 +0000)]
[libclang] Add a triple to the test.

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

12 years agocxx_status: Consistently refer to C++11 as "C++11", not as "C++'11" nor as
Richard Smith [Fri, 24 Feb 2012 18:42:08 +0000 (18:42 +0000)]
cxx_status: Consistently refer to C++11 as "C++11", not as "C++'11" nor as
"C++0x". Use "C++98" to refer to C++98, not "C++". Add heading for C++98
support section.

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

12 years agocxx_status: extended sizeof has been essentially complete for some time. As
Richard Smith [Fri, 24 Feb 2012 18:37:14 +0000 (18:37 +0000)]
cxx_status: extended sizeof has been essentially complete for some time. As
agreed on IRC, any remaining issues are best dealt with as bugs.

We have no __has_feature check for this; please shout if you'd like one. This
feature seems too small to be worth its own release notes bullet (again, please
shout if you disagree).

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

12 years agotest for writing modern ivar of struct type.
Fariborz Jahanian [Fri, 24 Feb 2012 18:17:50 +0000 (18:17 +0000)]
test for writing modern ivar of struct type.

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

12 years ago__decltype is a GNU extension, not a C++11 extension.
Richard Smith [Fri, 24 Feb 2012 18:10:23 +0000 (18:10 +0000)]
__decltype is a GNU extension, not a C++11 extension.

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

12 years agomore objective-c modern translator ivar tests.
Fariborz Jahanian [Fri, 24 Feb 2012 18:03:42 +0000 (18:03 +0000)]
more objective-c modern translator ivar tests.

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

12 years agoTwo minor, related fixes for template instantiation with blocks:
Douglas Gregor [Fri, 24 Feb 2012 17:41:38 +0000 (17:41 +0000)]
Two minor, related fixes for template instantiation with blocks:
  - Make sure that the block expression is instantiation-dependent if the
    block is in a dependent context
  - Make sure that the C++ 'this' expression gets captured even if we
  don't rebuild the AST node during template instantiation. This would
  also have manifested as a bug for lambdas.

Fixes <rdar://problem/10832617>.

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

12 years agoobjc modern translator. Fixes writing of block pointer ivar access.
Fariborz Jahanian [Fri, 24 Feb 2012 17:35:35 +0000 (17:35 +0000)]
objc modern translator. Fixes writing of block pointer ivar access.

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

12 years ago[analyzer] Run remove dead bindings before each call.
Anna Zaks [Fri, 24 Feb 2012 16:49:46 +0000 (16:49 +0000)]
[analyzer] Run remove dead bindings before each call.

This ensures that we report the bugs associated with symbols going
out of scope in the correct function context.

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

12 years ago[analyzer] We were silently stopping exploring the path after
Anna Zaks [Fri, 24 Feb 2012 16:49:41 +0000 (16:49 +0000)]
[analyzer] We were silently stopping exploring the path after
visiting 'return;' statement!

This most likely caused us to skip a bunch of code when analyzing with
inlining.

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

12 years agoUse -no-integrated-as only on ARM. The X86 and X86-64 integrated as have been
Rafael Espindola [Fri, 24 Feb 2012 16:22:39 +0000 (16:22 +0000)]
Use -no-integrated-as only on ARM. The X86 and X86-64 integrated as have been
the default for clang for some time now and can handle compiler-rt.

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

12 years agoRevert r151357. That unreachable is reachable...
Nick Lewycky [Fri, 24 Feb 2012 09:07:53 +0000 (09:07 +0000)]
Revert r151357. That unreachable is reachable...

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

12 years agoSilence gcc warnings pointing out that CharByteWidth could be used
Nick Lewycky [Fri, 24 Feb 2012 08:58:14 +0000 (08:58 +0000)]
Silence gcc warnings pointing out that CharByteWidth could be used
uninitialized. While there, restyle this function! No functionality change.

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

12 years agoSink variable into assert
Matt Beaumont-Gay [Fri, 24 Feb 2012 08:37:56 +0000 (08:37 +0000)]
Sink variable into assert

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

12 years agoRemove some trivial uses of hasTrivialCopyConstructor() and
Douglas Gregor [Fri, 24 Feb 2012 07:55:51 +0000 (07:55 +0000)]
Remove some trivial uses of hasTrivialCopyConstructor() and
hasTrivialMoveConstructor().

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

12 years agoKill a spurious use of hasTrivialDefaultConstructor()
Douglas Gregor [Fri, 24 Feb 2012 07:48:37 +0000 (07:48 +0000)]
Kill a spurious use of hasTrivialDefaultConstructor()

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

12 years agoImplement a new type trait __is_trivially_constructible(T, Args...)
Douglas Gregor [Fri, 24 Feb 2012 07:38:34 +0000 (07:38 +0000)]
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

12 years agoMake PathDiagnosticBuilder sensitive to varying LocationContexts, thus fixing a bug...
Ted Kremenek [Fri, 24 Feb 2012 07:12:52 +0000 (07:12 +0000)]
Make PathDiagnosticBuilder sensitive to varying LocationContexts, thus fixing a bug in the inlining diagnostics where the wrong location could be used.

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

12 years agoRemove stray path in test file.
Ted Kremenek [Fri, 24 Feb 2012 06:01:01 +0000 (06:01 +0000)]
Remove stray path in test file.

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

12 years agoReapply r151317, but when computing the PathDiagnostic profile and size keep into...
Ted Kremenek [Fri, 24 Feb 2012 06:00:00 +0000 (06:00 +0000)]
Reapply r151317, but when computing the PathDiagnostic profile and size keep into account the nested structure.  Also fix a problem with how
inlining impacted Plist diagnostics, and adjust some ranges in the Plist output due to richer information.

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

12 years agoFix test for non-block-default platforms.
David Blaikie [Fri, 24 Feb 2012 04:20:32 +0000 (04:20 +0000)]
Fix test for non-block-default platforms.

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

12 years agoRevert r151317 - Rework PathDiagnostics creation.. - to appease buildbots.
Chad Rosier [Fri, 24 Feb 2012 02:06:33 +0000 (02:06 +0000)]
Revert r151317 - Rework PathDiagnostics creation.. - to appease buildbots.

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

12 years ago[PCH] When keeping track of top-level decls for "targeted deserialization"
Argyrios Kyrtzidis [Fri, 24 Feb 2012 01:12:38 +0000 (01:12 +0000)]
[PCH] When keeping track of top-level decls for "targeted deserialization"
make sure we don't mistake ParmVarDecls for top-level decls.

Fixes rdar://10920009.

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

12 years agoRework PathDiagnostic creation so that call stacks are captured by a nested PathDiagn...
Ted Kremenek [Fri, 24 Feb 2012 00:38:56 +0000 (00:38 +0000)]
Rework PathDiagnostic creation so that call stacks are captured by a nested PathDiagnosticCallPiece.

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

12 years agoAdd an ivar test for modern objc abi translator.
Fariborz Jahanian [Fri, 24 Feb 2012 00:34:58 +0000 (00:34 +0000)]
Add an ivar test for modern objc abi translator.

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

12 years agoMake test works with FileCheck.
Fariborz Jahanian [Fri, 24 Feb 2012 00:29:20 +0000 (00:29 +0000)]
Make test works with FileCheck.

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

12 years agoReapply r151172 - Unwind path cleanup for array new list initializers - with a
Chad Rosier [Fri, 24 Feb 2012 00:13:55 +0000 (00:13 +0000)]
Reapply r151172 - Unwind path cleanup for array new list initializers - with a
test case that only runs on debug builds.

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

12 years agoHandle "#pragma GCC visibility" in a few more places. Switch over "#pragma pack...
Eli Friedman [Thu, 23 Feb 2012 23:47:16 +0000 (23:47 +0000)]
Handle "#pragma GCC visibility" in a few more places.  Switch over "#pragma pack" to use the same handling that gcc does.  Fixes <rdar://problem/10871094> and <rdar://problem/10893316>.

(Hopefully, common usage of these pragmas isn't irregular enough to break our current handling.  Doug has ideas for a more crazy approach if necessary.)

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

12 years agoModernize some code which processes CastExprs to use CastKinds. No intended function...
Eli Friedman [Thu, 23 Feb 2012 23:04:32 +0000 (23:04 +0000)]
Modernize some code which processes CastExprs to use CastKinds.  No intended functional change.

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

12 years ago[analyzer] KeyChainAPI: unique the leaks by allocation site.
Anna Zaks [Thu, 23 Feb 2012 22:53:29 +0000 (22:53 +0000)]
[analyzer] KeyChainAPI: unique the leaks by allocation site.
(Very similar to the previous change in malloc.)

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

12 years agoobjective-c++: Type of an objc string literal is NSString, not 'id'.
Fariborz Jahanian [Thu, 23 Feb 2012 22:51:36 +0000 (22:51 +0000)]
objective-c++: Type of an objc string literal is NSString, not 'id'.
// rdar://10907410

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

12 years agoTurned on support for __declspecs: noreturn, noinline, nothrow and naked in MS compat...
Aaron Ballman [Thu, 23 Feb 2012 22:46:33 +0000 (22:46 +0000)]
Turned on support for __declspecs: noreturn, noinline, nothrow and naked in MS compatibility mode.

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

12 years agoPull the OpaqueValueExpr's source expression into its constructor, so
Douglas Gregor [Thu, 23 Feb 2012 22:17:26 +0000 (22:17 +0000)]
Pull the OpaqueValueExpr's source expression into its constructor, so
that we can correctly compute value-dependence of the OVE.

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

12 years agoUpdate test for r151288
Jim Grosbach [Thu, 23 Feb 2012 22:12:53 +0000 (22:12 +0000)]
Update test for r151288

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

12 years agoARM: enable the integrated assembler by default for Darwin.
Jim Grosbach [Thu, 23 Feb 2012 21:55:04 +0000 (21:55 +0000)]
ARM: enable the integrated assembler by default for Darwin.

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

12 years ago[analyzer] Malloc: unique leak reports by allocation site.
Anna Zaks [Thu, 23 Feb 2012 21:38:21 +0000 (21:38 +0000)]
[analyzer] Malloc: unique leak reports by allocation site.

When we find two leak reports with the same allocation site, report only
one of them.

Provide a helper method to BugReporter to facilitate this.

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

12 years ago[analyzer] Add CString checks to the release notes.
Anna Zaks [Thu, 23 Feb 2012 21:38:14 +0000 (21:38 +0000)]
[analyzer] Add CString checks to the release notes.

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

12 years ago[libclang] Make sure that all top-level decls in a @implementation are
Argyrios Kyrtzidis [Thu, 23 Feb 2012 21:11:20 +0000 (21:11 +0000)]
[libclang] Make sure that all top-level decls in a @implementation are
marked as such.

Previously we missed tag declarations; fixes rdar://10902015

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

12 years agoTest is fixed.
Fariborz Jahanian [Thu, 23 Feb 2012 20:43:56 +0000 (20:43 +0000)]
Test is fixed.

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

12 years agoXFAIL test until I figure out how to make test pass on different platforms.
Fariborz Jahanian [Thu, 23 Feb 2012 20:22:21 +0000 (20:22 +0000)]
XFAIL test until I figure out how to make test pass on different platforms.

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

12 years ago* tgmath_logb.patch implements the missing logb function (see C99 standard 7.22,...
Howard Hinnant [Thu, 23 Feb 2012 20:22:10 +0000 (20:22 +0000)]
* tgmath_logb.patch implements the missing logb function (see C99 standard 7.22, paragraph 5). * tgmath_fabs_complex.patch corrects the return types for the complex fabs functions. These must be non-complex float/double/long double (see C99 standard 7.22, paragraph 4 and 7.3.8.1).  Patch contributed by Kristof Beyls.

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

12 years agoChange test again so it passes in build-bot until I can figure out what is
Fariborz Jahanian [Thu, 23 Feb 2012 20:07:38 +0000 (20:07 +0000)]
Change test again so it passes in build-bot until I can figure out what is
going on.

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

12 years agofix test for patch in r151268.
Fariborz Jahanian [Thu, 23 Feb 2012 18:57:03 +0000 (18:57 +0000)]
fix test for patch in r151268.

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

12 years agoActually remove the duplicated elements from the vector.
Benjamin Kramer [Thu, 23 Feb 2012 18:35:56 +0000 (18:35 +0000)]
Actually remove the duplicated elements from the vector.

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

12 years agoobjective-c default synthesis. classes which adopt protocol properties
Fariborz Jahanian [Thu, 23 Feb 2012 18:21:25 +0000 (18:21 +0000)]
objective-c default synthesis. classes which adopt protocol properties
must still auto synthesize those propeties which have been redeclared
in the class. // rdar://10907410

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

12 years agoFix indentation
Douglas Gregor [Thu, 23 Feb 2012 17:54:00 +0000 (17:54 +0000)]
Fix indentation

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

12 years agoNote that lambda expressions are available in the release notes for 3.1
Douglas Gregor [Thu, 23 Feb 2012 17:51:51 +0000 (17:51 +0000)]
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

12 years agoReplace a use of hasTrivialDefaultConstructor() with the appropriate
Douglas Gregor [Thu, 23 Feb 2012 17:07:43 +0000 (17:07 +0000)]
Replace a use of hasTrivialDefaultConstructor() with the appropriate
isTrivial() call.

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

12 years agoReplace some DenseSets with SmallPtrSets. Apart from the "small" optimization, the...
Benjamin Kramer [Thu, 23 Feb 2012 16:06:01 +0000 (16:06 +0000)]
Replace some DenseSets with SmallPtrSets. Apart from the "small" optimization, the current implementation is also a denser.

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

12 years agoUnique CXXBasePath decls with the SmallVector/pod_sort/std::unique idiom instead...
Benjamin Kramer [Thu, 23 Feb 2012 15:18:31 +0000 (15:18 +0000)]
Unique CXXBasePath decls with the SmallVector/pod_sort/std::unique idiom instead of employing a wasteful std::set.

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

12 years agoReplace the std::map in the init list checker with a DenseMap to reduce malloc thrashing.
Benjamin Kramer [Thu, 23 Feb 2012 14:48:40 +0000 (14:48 +0000)]
Replace the std::map in the init list checker with a DenseMap to reduce malloc thrashing.

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

12 years agoPR12067: When emitting an evaluated constant structure in C++11 mode, don't
Richard Smith [Thu, 23 Feb 2012 08:33:23 +0000 (08:33 +0000)]
PR12067: When emitting an evaluated constant structure in C++11 mode, don't
forget the vptrs.

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

12 years agoSeriously, are injected-class-names that hard?
Douglas Gregor [Thu, 23 Feb 2012 07:44:18 +0000 (07:44 +0000)]
Seriously, are injected-class-names that hard?

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

12 years agoProvide the __is_trivially_assignable type trait, which provides
Douglas Gregor [Thu, 23 Feb 2012 07:33:15 +0000 (07:33 +0000)]
Provide the __is_trivially_assignable type trait, which provides
compiler support for the std::is_trivially_assignable library type
trait.

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

12 years agoClang supports lambdas.
Douglas Gregor [Thu, 23 Feb 2012 05:44:09 +0000 (05:44 +0000)]
Clang supports lambdas.

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

12 years agoTwo fixes to how we compute visibility:
Rafael Espindola [Thu, 23 Feb 2012 04:17:32 +0000 (04:17 +0000)]
Two fixes to how we compute visibility:

* Handle some situations where we should never make a decl more visible,
  even when merging in an explicit visibility.

* Handle attributes in members of classes that are explicitly specialized.

Thanks Nico for the report and testing, Eric for the initial review, and dgregor
for the awesome test27 :-)

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

12 years agoTweak C++ status table:
Douglas Gregor [Thu, 23 Feb 2012 03:10:24 +0000 (03:10 +0000)]
Tweak C++ status table:
  - Apparently, SVN is yellow
  - Note that initializer lists are "in progress"

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

12 years agoClang now supports lambda expressions.
Douglas Gregor [Thu, 23 Feb 2012 03:02:32 +0000 (03:02 +0000)]
Clang now supports lambda expressions.

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

12 years agoTry to handle qualifiers more consistently for array InitListExprs. Fixes <rdar...
Eli Friedman [Thu, 23 Feb 2012 02:25:10 +0000 (02:25 +0000)]
Try to handle qualifiers more consistently for array InitListExprs.  Fixes <rdar://problem/10907510>, and makes the ASTs a bit more self-consistent.

(I've chosen to keep the qualifiers, but it isn't a strong preference; if anyone prefers removing them, please yell.)

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

12 years agoUpdate parser's disambiguation to cope with braced function-style casts in
Richard Smith [Thu, 23 Feb 2012 01:36:12 +0000 (01:36 +0000)]
Update parser's disambiguation to cope with braced function-style casts in
C++11, and with braced-init-list initializers in conditions. This exposed an
ambiguity with enum underlying types versus bitfields, which we resolve by
treating 'enum E : T {' as always defining an enumeration (even if it would
only successfully parse as a bitfield). This appears to be g++ compatible.

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

12 years agoTurned on support for __declspec(deprecated) in MS compatibility mode.
Aaron Ballman [Thu, 23 Feb 2012 01:19:31 +0000 (01:19 +0000)]
Turned on support for __declspec(deprecated) in MS compatibility mode.

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

12 years ago[analyzer] Invalidate the region passed to pthread_setspecific() call.
Anna Zaks [Thu, 23 Feb 2012 01:05:27 +0000 (01:05 +0000)]
[analyzer] Invalidate the region passed to pthread_setspecific() call.

Make this call an exception in ExprEngine::invalidateArguments:
'int pthread_setspecific(ptheread_key k, const void *)' stores
a value into thread local storage. The value can later be retrieved
with 'void *ptheread_getspecific(pthread_key)'. So even thought the
parameter is 'const void *', the region escapes through the
call.

(Here we just blacklist the call in the ExprEngine's default
logic. Another option would be to add a checker which evaluates
the call and triggers the call to invalidate regions.)

Teach the Malloc Checker, which treats all system calls as safe about
the API.

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

12 years agoTweak release note comments for checker build.
Ted Kremenek [Thu, 23 Feb 2012 00:48:17 +0000 (00:48 +0000)]
Tweak release note comments for checker build.

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

12 years agoUpdate checker build to checker-261.
Ted Kremenek [Thu, 23 Feb 2012 00:47:09 +0000 (00:47 +0000)]
Update checker build to checker-261.

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

12 years agoAdd a quick TODO.
Eric Christopher [Thu, 23 Feb 2012 00:43:12 +0000 (00:43 +0000)]
Add a quick TODO.

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

12 years agoFold debug scope emission into the cleanup scope.
Eric Christopher [Thu, 23 Feb 2012 00:43:07 +0000 (00:43 +0000)]
Fold debug scope emission into the cleanup scope.

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

12 years agoanother test for modern ivar access rewrite.
Fariborz Jahanian [Wed, 22 Feb 2012 22:32:05 +0000 (22:32 +0000)]
another test for modern ivar access rewrite.

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

12 years agoRevert r151172: Unwind path cleanup for array new list initializers.
Chad Rosier [Wed, 22 Feb 2012 21:36:06 +0000 (21:36 +0000)]
Revert r151172: Unwind path cleanup for array new list initializers.

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

12 years agomore tests for modern objc translator.
Fariborz Jahanian [Wed, 22 Feb 2012 21:13:49 +0000 (21:13 +0000)]
more tests for modern objc translator.

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

12 years agoImprove placement of clang crash diagnostics section.
Chad Rosier [Wed, 22 Feb 2012 20:26:10 +0000 (20:26 +0000)]
Improve placement of clang crash diagnostics section.

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

12 years ago[analyzer] Malloc cleanup:
Anna Zaks [Wed, 22 Feb 2012 19:24:52 +0000 (19:24 +0000)]
[analyzer] Malloc cleanup:
 - We should not evaluate strdup in the Malloc Checker, it's the job of
CString checker, so just update the RefState to reflect allocated
memory.

- Refactor to reduce LOC: remove some wrapper auxiliary functions, make
all functions return the state and add the transition in one place
(instead of in each auxiliary function).

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

12 years agoRevert part of r148839 and keep DefaultTargetTriple in the form adjusted
Joerg Sonnenberger [Wed, 22 Feb 2012 19:15:16 +0000 (19:15 +0000)]
Revert part of r148839 and keep DefaultTargetTriple in the form adjusted
by -target and similar options. As discussed in PR 12026, the change
broke support for target-prefixed tools, i.e. calling x86_64--linux-ld
when compiling for x86_64--linux. Improve the test cases added
originally in r149083 to not require execution, just executable files.
Document the hack with appropiate FIXME comments.

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

12 years agoAdd clang crash diagnostic info and associated flags to Clang user manual.
Chad Rosier [Wed, 22 Feb 2012 19:14:46 +0000 (19:14 +0000)]
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

12 years agoUpdate set-xcode-analyzer to work with Xcode repackaging in Xcode 4.3
Ted Kremenek [Wed, 22 Feb 2012 18:44:35 +0000 (18:44 +0000)]
Update set-xcode-analyzer to work with Xcode repackaging in Xcode 4.3

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

12 years agoAdd new driver warning from r151174 to a warning group. Please let me know if this...
Chad Rosier [Wed, 22 Feb 2012 18:18:48 +0000 (18:18 +0000)]
Add new driver warning from r151174 to a warning group.  Please let me know if this isn't the appropriate grouping.

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

12 years agomodern objc translator. more writing of modern ivar access
Fariborz Jahanian [Wed, 22 Feb 2012 18:13:25 +0000 (18:13 +0000)]
modern objc translator. more writing of modern ivar access
abi.

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

12 years ago[driver] Add a warning for when -mcpu= is specified without an argument. There
Chad Rosier [Wed, 22 Feb 2012 17:55:22 +0000 (17:55 +0000)]
[driver] Add a warning for when -mcpu= is specified without an argument.  There
are likely many other OPT_xxxx_EQ options that could/should be added here.
rdar://10704648

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

12 years agoDoug's review comments.
Sebastian Redl [Wed, 22 Feb 2012 17:38:04 +0000 (17:38 +0000)]
Doug's review comments.

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

12 years agoUnwind path cleanup for array new list initializers.
Sebastian Redl [Wed, 22 Feb 2012 17:37:59 +0000 (17:37 +0000)]
Unwind path cleanup for array new list initializers.

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

12 years agoCodeGen for array new list initializers. Doesn't correctly clean up in the face of...
Sebastian Redl [Wed, 22 Feb 2012 17:37:52 +0000 (17:37 +0000)]
CodeGen for array new list initializers. Doesn't correctly clean up in the face of exceptions yet.

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

12 years agoTeach overload resolution to prefer user-defined conversion via a
Douglas Gregor [Wed, 22 Feb 2012 17:32:19 +0000 (17:32 +0000)]
Teach overload resolution to prefer user-defined conversion via a
lambda closure type's function pointer conversion over user-defined
conversion via a lambda closure type's block pointer conversion,
always. This is a preference for more-standard code (since blocks
are an extension)  and a nod to efficiency, since function pointers
don't require any memory management. Fixes PR12063.

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

12 years agoFix parsing and processing initializer lists in return statements and as direct membe...
Sebastian Redl [Wed, 22 Feb 2012 10:50:08 +0000 (10:50 +0000)]
Fix parsing and processing initializer lists in return statements and as direct member initializers.

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

12 years agoWarn about non-standard format strings (pr12017)
Hans Wennborg [Wed, 22 Feb 2012 10:17:01 +0000 (10:17 +0000)]
Warn about non-standard format strings (pr12017)

This adds the -Wformat-non-standard flag (off by default,
enabled by -pedantic), which warns about non-standard
things in format strings (such as the 'q' length modifier,
the 'S' conversion specifier, etc.)

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

12 years agoMore ArrayRef-ification of methods.
Bill Wendling [Wed, 22 Feb 2012 09:51:33 +0000 (09:51 +0000)]
More ArrayRef-ification of methods.

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

12 years agoArrayRef-icize the function arguments.
Bill Wendling [Wed, 22 Feb 2012 09:38:11 +0000 (09:38 +0000)]
ArrayRef-icize the function arguments.

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

12 years agoUse an ArrayRef when we can instead of passing in a SmallVectorImpl reference.
Bill Wendling [Wed, 22 Feb 2012 09:30:11 +0000 (09:30 +0000)]
Use an ArrayRef when we can instead of passing in a SmallVectorImpl reference.

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

12 years agoThrow away stray CXXDefaultArgExprs. Fixes PR12061.
Sebastian Redl [Wed, 22 Feb 2012 09:07:21 +0000 (09:07 +0000)]
Throw away stray CXXDefaultArgExprs. Fixes PR12061.

I think there's a deeper problem here in the way TransformCXXConstructExpr works, but I won't tackle it now.

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

12 years agoIn -fdelayed-template-parsing mode, reenter every scope when late parsing a templated...
Francois Pichet [Wed, 22 Feb 2012 08:25:53 +0000 (08:25 +0000)]
In -fdelayed-template-parsing mode, reenter every scope when late parsing a templated function; (Not just the template parameter scope as previously). Also enter the scope stack in the correct order.

Otherwise this breaks some invariant during name lookup especially when dealing with shadowed declaration

Fix PR11931.

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

12 years agoAccept braced-init-lists in conditions, and, in passing, dramatically improve
Richard Smith [Wed, 22 Feb 2012 06:49:09 +0000 (06:49 +0000)]
Accept braced-init-lists in conditions, and, in passing, dramatically improve
the diagnostic for using a parenthesized direct-initializer in a condition.

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

12 years agoMake sure null initialization in arrays works correctly with ARC types. <rdar:/...
Eli Friedman [Wed, 22 Feb 2012 05:38:59 +0000 (05:38 +0000)]
Make sure null initialization in arrays works correctly with ARC types.  <rdar://problem/10907547>.

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

12 years agoGenerate an AST for the conversion from a lambda closure type to a
Douglas Gregor [Wed, 22 Feb 2012 05:02:47 +0000 (05:02 +0000)]
Generate an AST for the conversion from a lambda closure type to a
block pointer that returns a block literal which captures (by copy)
the lambda closure itself. Some aspects of the block literal are left
unspecified, namely the capture variable (which doesn't actually
exist) and the body (which will be filled in by IRgen because it can't
be written as an AST).

Because we're switching to this model, this patch also eliminates
tracking the copy-initialization expression for the block capture of
the conversion function, since that information is now embedded in the
synthesized block literal. -1 side tables FTW.

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

12 years agoImprove diagnostics a bit for bad member initializers, and fix an obscure bug involvi...
Eli Friedman [Wed, 22 Feb 2012 04:49:04 +0000 (04:49 +0000)]
Improve diagnostics a bit for bad member initializers, and fix an obscure bug involving packs.  Fixes PR12049.

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

12 years agotest/CodeGenCXX/thiscall-struct-return.cpp: Relax expressions for -Asserts.
NAKAMURA Takumi [Wed, 22 Feb 2012 03:36:54 +0000 (03:36 +0000)]
test/CodeGenCXX/thiscall-struct-return.cpp: Relax expressions for -Asserts.

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

12 years ago[analyzer] Malloc checker: mark 'strdup' and 'strndup' as allocators.
Anna Zaks [Wed, 22 Feb 2012 03:14:20 +0000 (03:14 +0000)]
[analyzer] Malloc checker: mark 'strdup' and 'strndup' as allocators.

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

12 years agoAdding support for Microsoft's thiscall calling convention. Clang side of the patch.
Aaron Ballman [Wed, 22 Feb 2012 03:04:13 +0000 (03:04 +0000)]
Adding support for Microsoft's thiscall calling convention.  Clang side of the patch.

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

12 years ago[analyzer] Malloc: fix another false positive.
Anna Zaks [Wed, 22 Feb 2012 02:36:01 +0000 (02:36 +0000)]
[analyzer] Malloc: fix another false positive.
, when we return a symbol reachable to the malloced one via pointer
arithmetic.

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

12 years ago[analyzer] Change naming in bug reports "tainted" -> "untrusted"
Anna Zaks [Wed, 22 Feb 2012 02:35:58 +0000 (02:35 +0000)]
[analyzer] Change naming in bug reports "tainted" -> "untrusted"

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