]> granicus.if.org Git - clang/log
clang
14 years agoCentralize the handling of CXXRecordDecl::DefinitionData's
Douglas Gregor [Mon, 27 Sep 2010 22:48:58 +0000 (22:48 +0000)]
Centralize the handling of CXXRecordDecl::DefinitionData's
DeclaredDestructor and UserDeclaredDestructor bits in CXXRecordDecl
itself. Another step on the road to <rdar://problem/8459981>.

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

14 years agoPatch to support transparent_union arguments
Fariborz Jahanian [Mon, 27 Sep 2010 22:42:37 +0000 (22:42 +0000)]
Patch to support transparent_union arguments
passed to nonnull attributed functions. Implements radar
6857843.

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

14 years agoKill FunctionDecl's IsCopyAssignment bit; it duplicated what could
Douglas Gregor [Mon, 27 Sep 2010 22:37:28 +0000 (22:37 +0000)]
Kill FunctionDecl's IsCopyAssignment bit; it duplicated what could
already be determined by isCopyAssignmentOperator(), and was set too
late in the process for all clients to see the appropriate
value. Cleanup only; no functionality change.

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

14 years agoWhen chaining PCHs, only write PPRecords that don't come from PCH, and give them...
Sebastian Redl [Mon, 27 Sep 2010 22:18:47 +0000 (22:18 +0000)]
When chaining PCHs, only write PPRecords that don't come from PCH, and give them the correct IDs. Fixes a crash in XCode.

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

14 years agoCentralize the handling of
Douglas Gregor [Mon, 27 Sep 2010 22:06:20 +0000 (22:06 +0000)]
Centralize the handling of
CXXRecordDecl::DefinitionData::DeclaredCopyAssignment, for
copy-assignment operators. Another step toward <rdar://problem/8459981>.

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

14 years agoRevert my patch changing the MMX "shift" intrinsics that take immediates into
Bill Wendling [Mon, 27 Sep 2010 21:22:25 +0000 (21:22 +0000)]
Revert my patch changing the MMX "shift" intrinsics that take immediates into
"shift with non-immediate" intrinsics. It gets here because we they aren't
immediates anymore.

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

14 years agoClean up the handling of the DeclaredDefaultConstructor and
Douglas Gregor [Mon, 27 Sep 2010 21:17:54 +0000 (21:17 +0000)]
Clean up the handling of the DeclaredDefaultConstructor and
DeclaredCopyConstructor bits in CXXRecordDecl's DefinitionData
structure. Rather than having Sema call addedConstructor or set the
bits directly at semi-random places, move all of the logic for
managing these bits into CXXRecordDecl itself and tie the
addedConstructor call into DeclContext::addDecl().

This makes it easier for AST-building clients to get the right bits
set in DefinitionData, and is one small part of <rdar://problem/8459981>.

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

14 years agoCorrectly set "explicit template instantiation" kind on inner structs of templates...
Nico Weber [Mon, 27 Sep 2010 21:02:09 +0000 (21:02 +0000)]
Correctly set "explicit template instantiation" kind on inner structs of templates whose explicit instantiation is first declared and then defined.

Fixes http://llvm.org/pr8207

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

14 years agoLet lit give helpful advice if 'make test' was not run yet.
Nico Weber [Mon, 27 Sep 2010 20:40:32 +0000 (20:40 +0000)]
Let lit give helpful advice if 'make test' was not run yet.

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

14 years agoutils/ABITest: Factor out type naming code slightly.
Daniel Dunbar [Mon, 27 Sep 2010 20:13:24 +0000 (20:13 +0000)]
utils/ABITest: Factor out type naming code slightly.

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

14 years agoutils/ABITest: Tweak default bit-field types to cover some more interesting cases.
Daniel Dunbar [Mon, 27 Sep 2010 20:13:22 +0000 (20:13 +0000)]
utils/ABITest: Tweak default bit-field types to cover some more interesting cases.

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

14 years agoutils/ABITest: Add a workaround for mismatches due to PR5579.
Daniel Dunbar [Mon, 27 Sep 2010 20:13:19 +0000 (20:13 +0000)]
utils/ABITest: Add a workaround for mismatches due to PR5579.

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

14 years agoutils/ABITest: Add option to skip individual tests by index.
Daniel Dunbar [Mon, 27 Sep 2010 20:13:17 +0000 (20:13 +0000)]
utils/ABITest: Add option to skip individual tests by index.

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

14 years agoFrontend: Teach clang -cc1as to respond to -v.
Daniel Dunbar [Mon, 27 Sep 2010 20:13:13 +0000 (20:13 +0000)]
Frontend: Teach clang -cc1as to respond to -v.

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

14 years agoIssue warning for trivial cases of nonnull attributes
Fariborz Jahanian [Mon, 27 Sep 2010 19:05:51 +0000 (19:05 +0000)]
Issue warning for trivial cases of nonnull attributes
(on functions with no pointer arguments) but only when
the attribute has not been coming from a macro
instantiation in a header file. Fixes first part
of radar 6857843.

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

14 years agoCopying result of object property reference expression
Fariborz Jahanian [Mon, 27 Sep 2010 17:30:38 +0000 (17:30 +0000)]
Copying result of object property reference expression
into a temporary is elidable as well.
(Finishes up radar 8291337).

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

14 years agoRemove libclang logging code
Douglas Gregor [Mon, 27 Sep 2010 16:43:25 +0000 (16:43 +0000)]
Remove libclang logging code

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

14 years agoFixed isConstantInitializer for __builtin_choose_expr.
Abramo Bagnara [Mon, 27 Sep 2010 07:13:32 +0000 (07:13 +0000)]
Fixed isConstantInitializer for __builtin_choose_expr.

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

14 years agoFix coding standard mistake from my last commit.
Michael J. Spencer [Mon, 27 Sep 2010 06:34:47 +0000 (06:34 +0000)]
Fix coding standard mistake from my last commit.

That, and keep aKor happy :P.

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

14 years agoLexer: Implement GCC's version of pragma message.
Michael J. Spencer [Mon, 27 Sep 2010 06:19:02 +0000 (06:19 +0000)]
Lexer: Implement GCC's version of pragma message.

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

14 years agoEnable caching of global code completion results in the suggested
Douglas Gregor [Mon, 27 Sep 2010 05:49:58 +0000 (05:49 +0000)]
Enable caching of global code completion results in the suggested
libclang options for editing a translation unit.

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

14 years agoDriver/Linux: Translate rewritten lib options back to standard -l form when
Daniel Dunbar [Sat, 25 Sep 2010 18:10:05 +0000 (18:10 +0000)]
Driver/Linux: Translate rewritten lib options back to standard -l form when
using generic GCC tools.

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

14 years agoIn preparation for adding generation of destructors for objects with automatic storag...
Marcin Swiderski [Sat, 25 Sep 2010 11:05:21 +0000 (11:05 +0000)]
In preparation for adding generation of destructors for objects with automatic storage added:
- LocalScope class with iterator used to pointing into it,
- fat doxygen comment for LocalScope indended usage,
- BlockScopePosPair class used for storing jump targets/sources (for: goto, break, continue), that replaces raw CFGBlock pointer used earlier for this purpose.

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

14 years agoFix a NYI in IRGen which was due to incorrect AST
Fariborz Jahanian [Sat, 25 Sep 2010 01:08:05 +0000 (01:08 +0000)]
Fix a NYI in IRGen which was due to incorrect AST
for property reference expression (of c++ object type)
in the conditional expression. Fixes // rdar://8291337

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

14 years agoWhen setting the globally-visible declarations for a particular
Douglas Gregor [Fri, 24 Sep 2010 23:29:12 +0000 (23:29 +0000)]
When setting the globally-visible declarations for a particular
identifier, we may have a Sema object but no translation unit scope
(because parsing is finished). In this case, we still need to update
the IdResolver, which might still be used when writing a PCH
containing another PCH (without chaining). This bug manifested as a
failure with precompiled preambles.

Also, add a little environment-variable-sensitive logging for
libclang.

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

14 years agoAllow the use of C++0x deleted functions as an extension in C++98.
Anders Carlsson [Fri, 24 Sep 2010 21:25:25 +0000 (21:25 +0000)]
Allow the use of C++0x deleted functions as an extension in C++98.

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

14 years agoTeach libclang to enable multithreading in LLVM, since libclang clients are likely...
Douglas Gregor [Fri, 24 Sep 2010 21:18:36 +0000 (21:18 +0000)]
Teach libclang to enable multithreading in LLVM, since libclang clients are likely to be multithreaded. Also move the printing of timers to somewhere better for multithreaded libclang clients

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

14 years agoDriver: Add -fallow-unsupported which disables some of the eager error'ing we do
Daniel Dunbar [Fri, 24 Sep 2010 19:39:37 +0000 (19:39 +0000)]
Driver: Add -fallow-unsupported which disables some of the eager error'ing we do
to prevent users from trying unsupported stuff. Useful for testing.

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

14 years agoFix rewriting of property declared in @protocol's.
Fariborz Jahanian [Fri, 24 Sep 2010 18:36:58 +0000 (18:36 +0000)]
Fix rewriting of property declared in @protocol's.
Fixed //rdar://8472487.

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

14 years agoPatch implements passing arrays to functions expecting
Fariborz Jahanian [Fri, 24 Sep 2010 17:30:16 +0000 (17:30 +0000)]
Patch implements passing arrays to functions expecting
vla. Implements pr7827.

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

14 years agoUpdate Clang man page to say a little bit more about C++
Douglas Gregor [Fri, 24 Sep 2010 17:26:14 +0000 (17:26 +0000)]
Update Clang man page to say a little bit more about C++

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

14 years agoRemove this test for now until I figure out how to get it to work with c-index-test...
Ted Kremenek [Fri, 24 Sep 2010 02:43:32 +0000 (02:43 +0000)]
Remove this test for now until I figure out how to get it to work with c-index-test in a portable way.

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

14 years agoPass -fobjc-nonfragile-abi2 in test.
Ted Kremenek [Fri, 24 Sep 2010 02:00:46 +0000 (02:00 +0000)]
Pass -fobjc-nonfragile-abi2 in test.

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

14 years agoSince this test depends on default ivar synthesis, specify the target triple. This...
Ted Kremenek [Fri, 24 Sep 2010 01:51:38 +0000 (01:51 +0000)]
Since this test depends on default ivar synthesis, specify the target triple.  This hopefully unbreaks the buildbot
on some archs.

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

14 years agoUpdate comment in test with reference to bug report.
Ted Kremenek [Fri, 24 Sep 2010 01:24:15 +0000 (01:24 +0000)]
Update comment in test with reference to bug report.

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

14 years agoDefault synthesized ivars don't really have a location in the source. Using the...
Ted Kremenek [Fri, 24 Sep 2010 01:23:01 +0000 (01:23 +0000)]
Default synthesized ivars don't really have a location in the source.  Using the location of the @implementation
is just confusing for clients that want to use SourceLocations for syntactic references.

Fixes: <rdar://problem/8470540>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114714 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRevert r114712 due to failure on darwin buildbot.
Nick Lewycky [Fri, 24 Sep 2010 00:46:53 +0000 (00:46 +0000)]
Revert r114712 due to failure on darwin buildbot.

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

14 years agoMake -M/-MM behave like in gcc; use -MF first then -o else use stdout.
Nick Lewycky [Thu, 23 Sep 2010 23:49:25 +0000 (23:49 +0000)]
Make -M/-MM behave like in gcc; use -MF first then -o else use stdout.

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

14 years agoFix header comment so we don't break emacs.
Nick Lewycky [Thu, 23 Sep 2010 23:48:20 +0000 (23:48 +0000)]
Fix header comment so we don't break emacs.

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

14 years agoSynchronize globally-cached code completion results with the results
Douglas Gregor [Thu, 23 Sep 2010 23:01:17 +0000 (23:01 +0000)]
Synchronize globally-cached code completion results with the results
provided when the optimization is disabled. In particular, split
the completion context CCC_Other into two contexts: CCC_Other, which
means that it's an undisclosed context for which any other results are
unwelcome, and CCC_Recovery, which is used in recovery cases.

Since we're now using the completion context within the completion
results builder, make sure that it's always set to something.

Fixes <rdar://problem/8470644>.

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

14 years agoFix typo.
Nick Lewycky [Thu, 23 Sep 2010 21:43:57 +0000 (21:43 +0000)]
Fix typo.

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

14 years agoWhen warning about comparing an unsigned int to being >= 0, don't issue a warning...
Ted Kremenek [Thu, 23 Sep 2010 21:43:44 +0000 (21:43 +0000)]
When warning about comparing an unsigned int to being >= 0, don't issue a warning if the zero value was an
enum or was expanded from a macro.

Fixes: <rdar://problem/8414119>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114695 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd test case for c-index-test showing that @property declarations added in class...
Ted Kremenek [Thu, 23 Sep 2010 21:25:13 +0000 (21:25 +0000)]
Add test case for c-index-test showing that @property declarations added in class extensions don't get reported
in the @interface.

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

14 years agoFor properties declared in a @protocol and redeclared in a class extension, use the...
Ted Kremenek [Thu, 23 Sep 2010 21:18:05 +0000 (21:18 +0000)]
For properties declared in a @protocol and redeclared in a class extension, use the class extension
as the lexical DeclContext for the @property declaration that gets auto-created for the @interface.

Fixes: <rdar://problem/8467189>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114693 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd some missing concurrency checks into libclang
Douglas Gregor [Thu, 23 Sep 2010 18:47:53 +0000 (18:47 +0000)]
Add some missing concurrency checks into libclang

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

14 years agoFix bogus compiler errors when declaring anonymous union, outside a class, with
Argyrios Kyrtzidis [Thu, 23 Sep 2010 14:26:01 +0000 (14:26 +0000)]
Fix bogus compiler errors when declaring anonymous union, outside a class, with
members with the same name as a decl outside the scope where the members are actually introduced.
Fixes http://llvm.org/PR6741

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

14 years agoIf -fcolor-diagnostics is explicitly passed to the driver respect that even if the...
Argyrios Kyrtzidis [Thu, 23 Sep 2010 12:56:06 +0000 (12:56 +0000)]
If -fcolor-diagnostics is explicitly passed to the driver respect that even if the driver is of the opinion that
stderr can't handle them. (see http://llvm.org/PR8150)
Patch by Frits van Bommel!

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

14 years agoDon't crash on _Imaginary.
Argyrios Kyrtzidis [Thu, 23 Sep 2010 09:40:31 +0000 (09:40 +0000)]
Don't crash on _Imaginary.

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

14 years agoUse -emit-llvm-only in the test.
Argyrios Kyrtzidis [Thu, 23 Sep 2010 09:40:20 +0000 (09:40 +0000)]
Use -emit-llvm-only in the test.

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

14 years agoRefactor GRExprEngine::VisitCall() to use EvalArguments(), just like VisitCXXMemberCa...
Ted Kremenek [Thu, 23 Sep 2010 05:14:51 +0000 (05:14 +0000)]
Refactor GRExprEngine::VisitCall() to use EvalArguments(), just like VisitCXXMemberCallExpr().  Ideally we should unify these code paths as much as possible, since they only differ by a few details.

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

14 years agoTweak test to pass -ffreestanding, to avoid platform dependent header issues.
Daniel Dunbar [Thu, 23 Sep 2010 04:40:10 +0000 (04:40 +0000)]
Tweak test to pass -ffreestanding, to avoid platform dependent header issues.

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

14 years agoIRgen/ABI/ARM: Return large vectors in memory.
Daniel Dunbar [Thu, 23 Sep 2010 01:54:32 +0000 (01:54 +0000)]
IRgen/ABI/ARM: Return large vectors in memory.

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

14 years agoIRgen/ABI/ARM: Trust the backend to pass vectors correctly for the given ABI.
Daniel Dunbar [Thu, 23 Sep 2010 01:54:28 +0000 (01:54 +0000)]
IRgen/ABI/ARM: Trust the backend to pass vectors correctly for the given ABI.
 - Therefore, we can lower out the NEON wrapper structs and pass the vectors
   directly. This makes a huge difference in the cleanliness of the IR after
   optimization.
 - I will trust, but verify, via future ABITest testing (for APCS-GNU, at
   least).

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

14 years agoUpdate checker build.
Ted Kremenek [Thu, 23 Sep 2010 00:35:46 +0000 (00:35 +0000)]
Update checker build.

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

14 years agoImplement libclang API functions for retrieving the lexical and
Douglas Gregor [Wed, 22 Sep 2010 21:22:29 +0000 (21:22 +0000)]
Implement libclang API functions for retrieving the lexical and
semantic parents of the given cursor.

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

14 years agoTestcase for r114585.
Devang Patel [Wed, 22 Sep 2010 21:13:48 +0000 (21:13 +0000)]
Testcase for r114585.

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

14 years agoFix an inverse boolean and unnecessary new line in warning output from AnalyzerStatsC...
Tom Care [Wed, 22 Sep 2010 21:07:51 +0000 (21:07 +0000)]
Fix an inverse boolean and unnecessary new line in warning output from AnalyzerStatsChecker.

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

14 years agoChange source manager serialization to be less tied to the PCH model.
Sebastian Redl [Wed, 22 Sep 2010 20:19:08 +0000 (20:19 +0000)]
Change source manager serialization to be less tied to the PCH model.

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

14 years agoFix a hard-to-reproduce crash-on-invalid, where we weren't checking for a valid resul...
Douglas Gregor [Wed, 22 Sep 2010 16:33:13 +0000 (16:33 +0000)]
Fix a hard-to-reproduce crash-on-invalid, where we weren't checking for a valid result from ActOnIdExpression

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

14 years agoImplement -Wpadded and -Wpacked.
Argyrios Kyrtzidis [Wed, 22 Sep 2010 14:32:24 +0000 (14:32 +0000)]
Implement -Wpadded and -Wpacked.

-Wpadded warns when undesired padding is introduced in a struct. (rdar://7469556)
-Wpacked warns if a struct is given the packed attribute, but the packed attribute has no effect
  on the layout or the size of the struct. Such structs may be mis-aligned for little benefit.

The warnings are emitted at the point where layout is calculated, that is at RecordLayoutBuilder.
To avoid calculating the layouts of all structs regardless of whether they are needed or not,
I let the layouts be lazily constructed when needed. This has the disadvantage that the above warnings
will be emitted only when they are used for IR gen, and not e.g with -fsyntax-only:

$ cat t.c
struct S {
  char c;
  int i;
};
void f(struct S* s) {}

$ clang -fsyntax-only -Wpadded t.c
$ clang -c -Wpadded t.c -o t.o
t.c:3:7: warning: padding struct 'struct S' with 3 bytes to align 'i' [-Wpadded]
  int i;
      ^
1 warning generated.

This is a good tradeoff between providing the warnings and not calculating layouts for all
structs in case the user has enabled a couple of rarely used warnings.

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

14 years agoupdate a bunch of tests that are using the x86 backend instead of grepping IR :(
Chris Lattner [Wed, 22 Sep 2010 06:09:31 +0000 (06:09 +0000)]
update a bunch of tests that are using the x86 backend instead of grepping IR :(

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

14 years agoOnly preload SLocEntries after the entire PCH chain was loaded.
Sebastian Redl [Wed, 22 Sep 2010 00:42:30 +0000 (00:42 +0000)]
Only preload SLocEntries after the entire PCH chain was loaded.

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

14 years agoReshuffle PerFileData's members to make more sense.
Sebastian Redl [Wed, 22 Sep 2010 00:42:27 +0000 (00:42 +0000)]
Reshuffle PerFileData's members to make more sense.

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

14 years agoDriver/Darwin: Add a runtime library just for ___eprintf -- when targeting i386
Daniel Dunbar [Wed, 22 Sep 2010 00:03:52 +0000 (00:03 +0000)]
Driver/Darwin: Add a runtime library just for ___eprintf -- when targeting i386
some projects still depend on ___eprintf being available.

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

14 years agofix the rest of rdar://8461279 - clang miscompiles address-space qualified atomics
Chris Lattner [Tue, 21 Sep 2010 23:40:48 +0000 (23:40 +0000)]
fix the rest of rdar://8461279 - clang miscompiles address-space qualified atomics

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

14 years agosame bug as before, this time with __sync_val_compare_and_swap.
Chris Lattner [Tue, 21 Sep 2010 23:35:30 +0000 (23:35 +0000)]
same bug as before, this time with __sync_val_compare_and_swap.

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

14 years agofix __sync_bool_compare_and_swap to work with address-space qualified types.
Chris Lattner [Tue, 21 Sep 2010 23:24:52 +0000 (23:24 +0000)]
fix __sync_bool_compare_and_swap to work with address-space qualified types.

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

14 years agofilecheckize.
Chris Lattner [Tue, 21 Sep 2010 23:22:41 +0000 (23:22 +0000)]
filecheckize.

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

14 years agoFixes an IRgen ICE due to cast of null pointer to
Fariborz Jahanian [Tue, 21 Sep 2010 22:53:33 +0000 (22:53 +0000)]
Fixes an IRgen ICE due to cast of null pointer to
a vla type (fixes pr7827).

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

14 years agoFixed pr20314-2.c failure, added E, F, p constraint letters.
John Thompson [Tue, 21 Sep 2010 22:04:54 +0000 (22:04 +0000)]
Fixed pr20314-2.c failure, added E, F, p constraint letters.

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

14 years agoCorrectly register the class extension as the lexical DeclContext for ObjC methods...
Ted Kremenek [Tue, 21 Sep 2010 20:52:59 +0000 (20:52 +0000)]
Correctly register the class extension as the lexical DeclContext for ObjC methods declared with @property in class extensions.
This matches the behavior for setters.

Also pass the class extension to ProcessPropertyDecl as the lexical DeclContext, even when not redeclaring the @property.

This fixes the remaining issues in <rdar://problem/7410145>.

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

14 years agoIRgen for gnu extension's conditional lvalue expression
Fariborz Jahanian [Tue, 21 Sep 2010 18:32:21 +0000 (18:32 +0000)]
IRgen for gnu extension's conditional lvalue expression
with missing LHS. radar 8453812. Executable test is checked
into llvm test suite.

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

14 years agoFor ObjCPropertyDecls in class extensions, use the class extension as the lexical...
Ted Kremenek [Tue, 21 Sep 2010 18:28:43 +0000 (18:28 +0000)]
For ObjCPropertyDecls in class extensions, use the class extension as the lexical DeclContext for newly created
ObjCMethodDecls.  Further, use the location of the new property declaration as the location of new ObjCMethodDecls
(if they didn't previously exist).

This fixes more of the issues reported in <rdar://problem/7410145>.

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

14 years agoAdd code completion for C++ constructors wherever we see the class (or
Douglas Gregor [Tue, 21 Sep 2010 16:06:22 +0000 (16:06 +0000)]
Add code completion for C++ constructors wherever we see the class (or
class template) and are in a context where we can have a value.

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

14 years agoAdjust for debug info API change.
Benjamin Kramer [Tue, 21 Sep 2010 15:59:59 +0000 (15:59 +0000)]
Adjust for debug info API change.

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

14 years agoDo not warn with -Wuninitialized when the member is used in a sizeof or address-of...
Argyrios Kyrtzidis [Tue, 21 Sep 2010 10:47:20 +0000 (10:47 +0000)]
Do not warn with -Wuninitialized when the member is used in a sizeof or address-of expression.
Fixes rdar://8331312.

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

14 years agoAdded:
Marcin Swiderski [Tue, 21 Sep 2010 05:58:15 +0000 (05:58 +0000)]
Added:
- definitions of interfaces for CFGInitializer and CFGAutomaticObjDtor,
- support for above classes to print_elem function (renamed print_stmt),
- support for VarDecls in StmtPrinterHelper.

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

14 years agoFix indentation.
Ted Kremenek [Tue, 21 Sep 2010 04:47:01 +0000 (04:47 +0000)]
Fix indentation.

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

14 years agoCheck for null ObjCInterfaceDecls returned from getClassInterface() when generating...
Ted Kremenek [Tue, 21 Sep 2010 04:45:46 +0000 (04:45 +0000)]
Check for null ObjCInterfaceDecls returned from getClassInterface() when generating USRs.  While I have no test case for this (could not create one), this shows up in crash reports.  Tentatively fixes <rdar://problem/8452791>.

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

14 years agoAdd a comment explaining why the MMX builtins are segregated and what we plan on
Bill Wendling [Tue, 21 Sep 2010 01:39:34 +0000 (01:39 +0000)]
Add a comment explaining why the MMX builtins are segregated and what we plan on
doing with them. It's a "FIXME" right now because this change hasn't been
implemented yet.

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

14 years agoWhen providing code completions for an argument in an Objective-C
Douglas Gregor [Tue, 21 Sep 2010 00:03:25 +0000 (00:03 +0000)]
When providing code completions for an argument in an Objective-C
message send, e.g.,

  [[NSString alloc] initWithCString:<CC>

look up all of the possible methods and determine the preferred type
for the argument expression based on the type of the corresponding
parameter.

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

14 years agoImplements in IRgen gnu extensions missing LHS for
Fariborz Jahanian [Mon, 20 Sep 2010 23:50:22 +0000 (23:50 +0000)]
Implements in IRgen gnu extensions missing LHS for
complex conditionals. Radar 8453812.

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

14 years agoRefactor code completion for expressions that occur as arguments in
Douglas Gregor [Mon, 20 Sep 2010 23:34:21 +0000 (23:34 +0000)]
Refactor code completion for expressions that occur as arguments in
Objective-C message sends. There is no functionality change here; this
is prep work for using the parameter types to help guide the
expression results when code-completing the argument.

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

14 years agoCode completion has no reason to prefer values over types, especially
Douglas Gregor [Mon, 20 Sep 2010 23:11:55 +0000 (23:11 +0000)]
Code completion has no reason to prefer values over types, especially
at the statement level or in Objective-C message receivers. Therefore,
just give types and declarations the same basic priority, and adjust
from there.

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

14 years agoCheck in support for OpenCL conditional operator on vector types.
Nate Begeman [Mon, 20 Sep 2010 22:41:17 +0000 (22:41 +0000)]
Check in support for OpenCL conditional operator on vector types.

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

14 years agoSlight refactoring in code-completion results generation, placing the
Douglas Gregor [Mon, 20 Sep 2010 22:39:41 +0000 (22:39 +0000)]
Slight refactoring in code-completion results generation, placing the
various priority adjustments for preferences (based on selectors,
types) in a single function to make extension easier.

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

14 years agoGet rid of the lame attempt to prioritize "void" functions at
Douglas Gregor [Mon, 20 Sep 2010 21:25:19 +0000 (21:25 +0000)]
Get rid of the lame attempt to prioritize "void" functions at
statement context; it really isn't helpful in practice (remember
printf!) and we'll be doing other adjustments for statements very soon.

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

14 years agoTweak priorities for some types and macros:
Douglas Gregor [Mon, 20 Sep 2010 21:11:48 +0000 (21:11 +0000)]
Tweak priorities for some types and macros:
  - In Objective-C, we prefer BOOL to bool for historic reasons;
  slightly penalize "bool".
  - Treat Nil macro as a NULL pointer constant.
  - Treat YES, NO, true, and false macros as constants.
  - Treat the bool macro as a type.

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

14 years agoThe builtins __builtin_ia32_paddq and __builtin_ia32_psubq were missing.
Bill Wendling [Mon, 20 Sep 2010 20:40:00 +0000 (20:40 +0000)]
The builtins __builtin_ia32_paddq and __builtin_ia32_psubq were missing.

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

14 years agoIntroduce a simple, substitution-based compression scheme for USRs, so
Douglas Gregor [Mon, 20 Sep 2010 20:37:39 +0000 (20:37 +0000)]
Introduce a simple, substitution-based compression scheme for USRs, so
that redundant types don't result in super-long USRs. Fixes
<rdar://problem/8447875>.

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

14 years agoFix CMake clangIndex library dependencies, from Logan Chien
Douglas Gregor [Mon, 20 Sep 2010 18:32:29 +0000 (18:32 +0000)]
Fix CMake clangIndex library dependencies, from Logan Chien

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

14 years agoDriver/Objective-C: Retool Objective-C ABI flags to be more usable, and actually
Daniel Dunbar [Mon, 20 Sep 2010 18:19:55 +0000 (18:19 +0000)]
Driver/Objective-C: Retool Objective-C ABI flags to be more usable, and actually
document behavior. Will wonders never cease.

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

14 years agoCheck that an overloaded function name, when used by the ! operator,
Douglas Gregor [Mon, 20 Sep 2010 17:13:33 +0000 (17:13 +0000)]
Check that an overloaded function name, when used by the ! operator,
actually resolves to a particular function. Fixes PR8181, from Faisal
Vali!

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

14 years agoGive implicitly-defined default constructors and destructors empty
Douglas Gregor [Mon, 20 Sep 2010 16:48:21 +0000 (16:48 +0000)]
Give implicitly-defined default constructors and destructors empty
bodies, from Martin Vejnar!

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

14 years agoRevert r114316, -Wunused-value enabled by default was intended.
Argyrios Kyrtzidis [Sun, 19 Sep 2010 23:03:35 +0000 (23:03 +0000)]
Revert r114316, -Wunused-value enabled by default was intended.

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

14 years agoMake -Wunused-value off by default, matching GCC. Fixes rdar://7126194.
Argyrios Kyrtzidis [Sun, 19 Sep 2010 21:21:44 +0000 (21:21 +0000)]
Make -Wunused-value off by default, matching GCC. Fixes rdar://7126194.

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

14 years agoImplement -Wunused-label.
Argyrios Kyrtzidis [Sun, 19 Sep 2010 21:21:25 +0000 (21:21 +0000)]
Implement -Wunused-label.

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

14 years agoWarn when an expression result in a LabelStmt is unused.
Argyrios Kyrtzidis [Sun, 19 Sep 2010 21:21:10 +0000 (21:21 +0000)]
Warn when an expression result in a LabelStmt is unused.

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

14 years agoUpdate users manual comments on X86 and ARM support.
Daniel Dunbar [Sun, 19 Sep 2010 19:26:59 +0000 (19:26 +0000)]
Update users manual comments on X86 and ARM support.

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

14 years agoFixes IRgen bug in objc++ reference binding of a
Fariborz Jahanian [Sat, 18 Sep 2010 20:47:25 +0000 (20:47 +0000)]
Fixes IRgen bug in objc++ reference binding of a
getter expression.
Fixes // rdar://8437240

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