]> granicus.if.org Git - clang/log
clang
13 years agoDon't crash when we fail to load a module. It's unbecoming of a
Douglas Gregor [Sat, 10 Sep 2011 00:30:18 +0000 (00:30 +0000)]
Don't crash when we fail to load a module. It's unbecoming of a
well-bred compiler like Clang.

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

13 years agoClean up our handling of Objective-C definitions in AST files. Rather
Douglas Gregor [Sat, 10 Sep 2011 00:22:34 +0000 (00:22 +0000)]
Clean up our handling of Objective-C definitions in AST files. Rather
than having CodeGen check whether a declaration comes from an AST file
(which it shouldn't know or care about), make sure that the AST writer and
reader pass along "interesting" declarations that CodeGen needs to
know about.

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

13 years ago[analyzer] -analyze-function for ObjectiveC should check if any of the methods match...
Anna Zaks [Sat, 10 Sep 2011 00:12:23 +0000 (00:12 +0000)]
[analyzer] -analyze-function for ObjectiveC should check if any of the methods match the name (not only the first one).

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

13 years agoKill of the Decl::PCHLevel field entirely. We now only need to know
Douglas Gregor [Sat, 10 Sep 2011 00:09:20 +0000 (00:09 +0000)]
Kill of the Decl::PCHLevel field entirely. We now only need to know
whether a Decl was deserialized from an AST file (any AST file).

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

13 years agoExtend the Stmt AST to make it easier to look through label, default,
Chandler Carruth [Sat, 10 Sep 2011 00:02:34 +0000 (00:02 +0000)]
Extend the Stmt AST to make it easier to look through label, default,
and case statements. Use this to make the logic in the CFG builder more
robust at finding the actual statements within a compound statement,
even when there are many layers of labels obscuring it.

Also extend the test cases for a large chunk of PR10063. Still more work
to do here though.

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

13 years agoThe translation unit is never deserialized
Douglas Gregor [Fri, 9 Sep 2011 23:34:14 +0000 (23:34 +0000)]
The translation unit is never deserialized

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

13 years agoEliminate all but one caller of Decl::getPCHLevel()
Douglas Gregor [Fri, 9 Sep 2011 23:07:59 +0000 (23:07 +0000)]
Eliminate all but one caller of Decl::getPCHLevel()

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

13 years agoIntroduce a new predicate Decl::isFromASTFile() to determine whether a
Douglas Gregor [Fri, 9 Sep 2011 23:01:35 +0000 (23:01 +0000)]
Introduce a new predicate Decl::isFromASTFile() to determine whether a
declaration was deserialized from an AST file. Use this instead of
Decl::getPCHLevel() wherever possible. This is a simple step toward
killing off Decl::getPCHLevel().

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

13 years agoThread safety: removing unnecessary import and reordering import list
Caitlin Sadowski [Fri, 9 Sep 2011 23:00:59 +0000 (23:00 +0000)]
Thread safety: removing unnecessary import and reordering import list

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

13 years agoThread safety: removing unnecessary import
Caitlin Sadowski [Fri, 9 Sep 2011 22:49:12 +0000 (22:49 +0000)]
Thread safety: removing unnecessary import

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

13 years agoRemove trailing } in comment.
Julien Lerouge [Fri, 9 Sep 2011 22:46:39 +0000 (22:46 +0000)]
Remove trailing } in comment.

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

13 years agoBring llvm.annotation* intrinsics support back to where it was in llvm-gcc: can
Julien Lerouge [Fri, 9 Sep 2011 22:41:49 +0000 (22:41 +0000)]
Bring llvm.annotation* intrinsics support back to where it was in llvm-gcc: can
annotate global, local variables, struct fields, or arbitrary statements (using
the __builtin_annotation), rdar://8037476.

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

13 years agoIn the ASTReader, replace the never-NULL Preprocessor pointer with a
Douglas Gregor [Fri, 9 Sep 2011 22:02:16 +0000 (22:02 +0000)]
In the ASTReader, replace the never-NULL Preprocessor pointer with a
Preprocessor reference. Simplify some code along the way, so there is
no separate "initialize the preprocessor" step.

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

13 years agoAdd smarter sorting of overload candidates that failed template deduction.
Kaelyn Uhrain [Fri, 9 Sep 2011 21:58:49 +0000 (21:58 +0000)]
Add smarter sorting of overload candidates that failed template deduction.

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

13 years agoCarry the debug information from single exit unified return block
Eric Christopher [Fri, 9 Sep 2011 21:53:04 +0000 (21:53 +0000)]
Carry the debug information from single exit unified return block
along with the new insert point.

Fixes PR10829

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

13 years agoIn ASTReader, replace the never-NULL ASTContext pointer with an
Douglas Gregor [Fri, 9 Sep 2011 21:34:22 +0000 (21:34 +0000)]
In ASTReader, replace the never-NULL ASTContext pointer with an
ASTContext reference. Remove all of the extra checking and logic that
was used to cope with a NULL ASTContext. No effective functionality
change.

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

13 years agoFriends cannot be declared module-private
Douglas Gregor [Fri, 9 Sep 2011 21:14:29 +0000 (21:14 +0000)]
Friends cannot be declared module-private

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

13 years agoMark the translation unit as having lexical/visible storage only when we actually...
Douglas Gregor [Fri, 9 Sep 2011 21:09:37 +0000 (21:09 +0000)]
Mark the translation unit as having lexical/visible storage only when we actually have data for that lexical or visible storage

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

13 years agoBack out r139358 "[PCH] When loading the decls linked to an
Douglas Gregor [Fri, 9 Sep 2011 21:05:56 +0000 (21:05 +0000)]
Back out r139358 "[PCH] When loading the decls linked to an
identifier, also make them visible in the translation unit," which
isn't needed now that John's eliminated the AST dependency in blocks
CodeGen.

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

13 years agoSpecializations cannot be module-hidden. Diagnose attempts to do so.
Douglas Gregor [Fri, 9 Sep 2011 20:53:38 +0000 (20:53 +0000)]
Specializations cannot be module-hidden. Diagnose attempts to do so.

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

13 years agoTreat the weak export of block runtime symbols as a deployment-target
John McCall [Fri, 9 Sep 2011 20:41:01 +0000 (20:41 +0000)]
Treat the weak export of block runtime symbols as a deployment-target
feature akin to the ARC runtime checks.  Removes a terrible hack where
IR gen needed to find the declarations of those symbols in the translation
unit.

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

13 years agoobjc rewriter - Add rewriter test for new instancetype
Fariborz Jahanian [Fri, 9 Sep 2011 20:35:22 +0000 (20:35 +0000)]
objc rewriter - Add rewriter test for new instancetype
along with minor rewriter fix to handle that. This
test is still incomplete due to rewriter issues
unrelated to instancetype.

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

13 years agoDon't produce 'instancetype' as the type of a message send expression. Map it down...
Douglas Gregor [Fri, 9 Sep 2011 20:05:21 +0000 (20:05 +0000)]
Don't produce 'instancetype' as the type of a message send expression. Map it down to 'id'.

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

13 years ago__module_private__ is inherited by redeclarations of an entity, and
Douglas Gregor [Fri, 9 Sep 2011 19:05:14 +0000 (19:05 +0000)]
__module_private__ is inherited by redeclarations of an entity, and
must also be present of the first declaration of that entity.

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

13 years ago[analyzer] When running scan-build with -plist on ./configure, delete the plist files.
Anna Zaks [Fri, 9 Sep 2011 18:43:53 +0000 (18:43 +0000)]
[analyzer] When running scan-build with -plist on ./configure, delete the plist files.
(scan-build does not set the $HtmlDir when running against configure. Previously, this implied that the plist files would appear in the current directory, with this patch they will get deleted.)

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

13 years agoPropagate __module_private__ from previous declarations to later
Douglas Gregor [Fri, 9 Sep 2011 18:32:39 +0000 (18:32 +0000)]
Propagate __module_private__ from previous declarations to later
declarations.

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

13 years agoWhen type-checking a call to an overloaded, builtin atomic operation,
Douglas Gregor [Fri, 9 Sep 2011 16:51:10 +0000 (16:51 +0000)]
When type-checking a call to an overloaded, builtin atomic operation,
construct a new DeclRefExpr rather than re-using the existing
DeclRefExpr. Patch by Likai Liu, fixes PR8345.

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

13 years agoThread safety: This patch deals with previously unhandled cases when building lock...
Caitlin Sadowski [Fri, 9 Sep 2011 16:21:55 +0000 (16:21 +0000)]
Thread safety: This patch deals with previously unhandled cases when building lock expressions. We now resolve this expressions, avoid crashing when encountering cast expressions, and have a diagnostic for unresolved lock expressions

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

13 years agoThread Safety: Moving the analysis to a new file
Caitlin Sadowski [Fri, 9 Sep 2011 16:11:56 +0000 (16:11 +0000)]
Thread Safety: Moving the analysis to a new file

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

13 years agoThread safety: refactoring test cases
Caitlin Sadowski [Fri, 9 Sep 2011 16:07:55 +0000 (16:07 +0000)]
Thread safety: refactoring test cases

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

13 years agoThread safety: refactoring to use an error handler
Caitlin Sadowski [Fri, 9 Sep 2011 16:04:02 +0000 (16:04 +0000)]
Thread safety: refactoring to use an error handler

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

13 years agoUpdate comment because JumpDiagnostics.cpp is not just about VLA scope.
Francois Pichet [Fri, 9 Sep 2011 11:02:57 +0000 (11:02 +0000)]
Update comment because JumpDiagnostics.cpp is not just about VLA scope.

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

13 years agoClean up the sentinel-attribute checking code a lot. Document
John McCall [Fri, 9 Sep 2011 07:56:05 +0000 (07:56 +0000)]
Clean up the sentinel-attribute checking code a lot.  Document
what 'nullPos' is supposed to mean, at least at this one site.
Use closed forms for the arithmetic.  Rip out some clever but
ultimately pointless code that was trying to use 0 or 0L depending
the size of a pointer vs. the size of int;  first, it didn't work
on LLP64 systems, and second, the sentinel checking code requires
a pointer-typed value anyway, so this fixit would not have actually
removed the warning.

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

13 years agoDo a lookup for the blocks runtime globals to see if they were declared,
Argyrios Kyrtzidis [Fri, 9 Sep 2011 06:44:21 +0000 (06:44 +0000)]
Do a lookup for the blocks runtime globals to see if they were declared,
instead of codegen waiting to consume such a declaration, which won't
happen if that decls are coming from a PCH.

Fixes rdar://10028656.

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

13 years ago[PCH] When loading the decls linked to an identifier, also make them visible
Argyrios Kyrtzidis [Fri, 9 Sep 2011 06:44:17 +0000 (06:44 +0000)]
[PCH] When loading the decls linked to an identifier, also make them visible
in the translation unit.

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

13 years agoUse ArrayRef in ExternalASTSource::SetExternalVisibleDeclsForName.
Argyrios Kyrtzidis [Fri, 9 Sep 2011 06:44:14 +0000 (06:44 +0000)]
Use ArrayRef in ExternalASTSource::SetExternalVisibleDeclsForName.

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

13 years agoCode formatting; no functionality change.
John McCall [Fri, 9 Sep 2011 06:12:06 +0000 (06:12 +0000)]
Code formatting; no functionality change.

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

13 years agoContextually converting to 'id' is not a useful operation. Contextually
John McCall [Fri, 9 Sep 2011 06:11:02 +0000 (06:11 +0000)]
Contextually converting to 'id' is not a useful operation.  Contextually
converting to an arbitrary Objective-C pointer type is.  Without
significantly re-implementing anything, change the API to reflect this,
and as a minor optimization, strip the pointer conversion off before
potentially building it.

Mostly, this removes a really bizarre-looking bit of code from
BuildInstanceMessage.

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

13 years agoGive conversions of block pointers to ObjC pointers a different cast kind
John McCall [Fri, 9 Sep 2011 05:25:32 +0000 (05:25 +0000)]
Give conversions of block pointers to ObjC pointers a different cast kind
than conversions of C pointers to ObjC pointers.  In order to ensure that
we've caught every case, add asserts to CastExpr that strictly determine
which cast kind is used for which kind of bit cast.

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

13 years agoClean up the RebuildUnknownAnyExpr visitor in SemaExpr.cpp. Mainly swapped around...
Richard Trieu [Fri, 9 Sep 2011 03:59:41 +0000 (03:59 +0000)]
Clean up the RebuildUnknownAnyExpr visitor in SemaExpr.cpp.  Mainly swapped around variable names so that this visitor be more like other visitors in clang.

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

13 years agoChanged references of BaseTy, MemInitTy, CXXScopeTy, TemplateParamsTy to CXXBaseSpeci...
Richard Trieu [Fri, 9 Sep 2011 03:18:59 +0000 (03:18 +0000)]
Changed references of BaseTy, MemInitTy, CXXScopeTy, TemplateParamsTy to CXXBaseSpecifier, CXXCtorInitializer, NestedNameSpecifier, TemplateParameterList and removed their typedefs.

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

13 years agoChange references to StmtTy to Stmt and removed typedefs of StmtTy. Also removed...
Richard Trieu [Fri, 9 Sep 2011 02:16:15 +0000 (02:16 +0000)]
Change references to StmtTy to Stmt and removed typedefs of StmtTy.  Also removed typedef of AttrTy since it is not used.

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

13 years agoModules: introduce the __module_private__ declaration specifier, which
Douglas Gregor [Fri, 9 Sep 2011 02:06:17 +0000 (02:06 +0000)]
Modules: introduce the __module_private__ declaration specifier, which
indicates that a declaration is only visible within the module it is
declared in.

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

13 years agoChange all references of type ExprTy to Expr and get rid of the typedefs.
Richard Trieu [Fri, 9 Sep 2011 02:00:50 +0000 (02:00 +0000)]
Change all references of type ExprTy to Expr and get rid of the typedefs.

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

13 years agoCapitialize paramater names in SemaExpr.cpp and resolve any parameter name conflicts...
Richard Trieu [Fri, 9 Sep 2011 01:45:06 +0000 (01:45 +0000)]
Capitialize paramater names in SemaExpr.cpp and resolve any parameter name conflicts between declarations and definitions from this and previous refactorings.

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

13 years agoThe integer type of an enumeration type isn't always canonical
Douglas Gregor [Thu, 8 Sep 2011 23:29:05 +0000 (23:29 +0000)]
The integer type of an enumeration type isn't always canonical

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

13 years agoRearrange comment slightly for Bill.
Eric Christopher [Thu, 8 Sep 2011 23:28:19 +0000 (23:28 +0000)]
Rearrange comment slightly for Bill.

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

13 years agoRemove WCHAR_MIN and WCHAR_MAX from limits.h. According to posix and c99
Eric Christopher [Thu, 8 Sep 2011 23:25:25 +0000 (23:25 +0000)]
Remove WCHAR_MIN and WCHAR_MAX from limits.h. According to posix and c99
these should be in stdint.h - and they already are.

Fixes rdar://10097036.

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

13 years agoThread safety: small edit to unused variation on warning left in by accident from...
Caitlin Sadowski [Thu, 8 Sep 2011 23:17:03 +0000 (23:17 +0000)]
Thread safety: small edit to unused variation on warning left in by accident from earlier commit

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

13 years agoAdd some delay between PCH creation and modifying one of the headers it depends on...
Douglas Gregor [Thu, 8 Sep 2011 22:32:33 +0000 (22:32 +0000)]
Add some delay between PCH creation and modifying one of the headers it depends on, which will---hopefully make this test predictably pass on Windows

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

13 years agoExtend -Wliteral-conversion to catch "int i = -1.234"
Matt Beaumont-Gay [Thu, 8 Sep 2011 22:30:47 +0000 (22:30 +0000)]
Extend -Wliteral-conversion to catch "int i = -1.234"

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

13 years agoThread Safety: In C++0x Mutexes are the objects that control access to shared variab...
Caitlin Sadowski [Thu, 8 Sep 2011 21:52:50 +0000 (21:52 +0000)]
Thread Safety:  In C++0x Mutexes are the objects that control access to shared variables, while Locks are the objects that acquire and release Mutexes. We switch to this new terminology.

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

13 years agoThe frexp, modf, and remquo builtins are not 'const'.
Jakob Stoklund Olesen [Thu, 8 Sep 2011 21:18:03 +0000 (21:18 +0000)]
The frexp, modf, and remquo builtins are not 'const'.

These functions return a second value by writing to a pointer argument,
so they cannot be marked 'readnone' which implies that they don't access
memory.

<rdar://problem/10070234>

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

13 years agoThread Safety: adding basic no thread safety analysis option
Caitlin Sadowski [Thu, 8 Sep 2011 18:35:21 +0000 (18:35 +0000)]
Thread Safety: adding basic no thread safety analysis option

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

13 years agoThread safety: Adding basic support for locks required and excluded attributes
Caitlin Sadowski [Thu, 8 Sep 2011 18:27:31 +0000 (18:27 +0000)]
Thread safety: Adding basic support for locks required and excluded attributes

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

13 years agoThread safety: shared vs. exclusive locks
Caitlin Sadowski [Thu, 8 Sep 2011 18:19:38 +0000 (18:19 +0000)]
Thread safety: shared vs. exclusive locks

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

13 years agoThread safety: small formatting change in test comments
Caitlin Sadowski [Thu, 8 Sep 2011 18:07:26 +0000 (18:07 +0000)]
Thread safety: small formatting change in test comments

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

13 years agoLook through SubstNonTypeTemplateParmExpr nodes in the various
Douglas Gregor [Thu, 8 Sep 2011 17:56:33 +0000 (17:56 +0000)]
Look through SubstNonTypeTemplateParmExpr nodes in the various
Expr::Ignore* methods that also look through implicit casts.

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

13 years agoThread safety: added support for function scopes in attribute arguments.
Caitlin Sadowski [Thu, 8 Sep 2011 17:42:31 +0000 (17:42 +0000)]
Thread safety: added support for function scopes in attribute arguments.

This patch was written by DeLesley Hutchins.

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

13 years agoThread Safety: Patch to implement delayed parsing of attributes within a
Caitlin Sadowski [Thu, 8 Sep 2011 17:42:22 +0000 (17:42 +0000)]
Thread Safety: Patch to implement delayed parsing of attributes within a
class scope.

This patch was also written by DeLesley Hutchins.

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

13 years agoDocument __has_feature(objc_instancetype).
Douglas Gregor [Thu, 8 Sep 2011 17:19:31 +0000 (17:19 +0000)]
Document __has_feature(objc_instancetype).

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

13 years ago[libclang] Fix annotation and getting a "macro expansion" cursor
Argyrios Kyrtzidis [Thu, 8 Sep 2011 17:18:41 +0000 (17:18 +0000)]
[libclang] Fix annotation and getting a "macro expansion" cursor
for a builtin macro expansion.

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

13 years agoAllow C++0x enumerations with a fixed underlying type in
Douglas Gregor [Thu, 8 Sep 2011 17:18:35 +0000 (17:18 +0000)]
Allow C++0x enumerations with a fixed underlying type in
Objective-C. The @encode'ing of such an enumeration type is the same
as its underlying type. <rdar://problem/5276348>.

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

13 years agoFormatting.
Eric Christopher [Thu, 8 Sep 2011 17:15:04 +0000 (17:15 +0000)]
Formatting.

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

13 years agoAdd a block comment explaining how the different source locations work
Eric Christopher [Thu, 8 Sep 2011 17:15:01 +0000 (17:15 +0000)]
Add a block comment explaining how the different source locations work
including some source examples.

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

13 years agoAdded missing initialization.
Abramo Bagnara [Thu, 8 Sep 2011 14:20:25 +0000 (14:20 +0000)]
Added missing initialization.

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

13 years agoAdding FixIts to static/inline main declaration diagnostics.
David Blaikie [Thu, 8 Sep 2011 06:33:04 +0000 (06:33 +0000)]
Adding FixIts to static/inline main declaration diagnostics.

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

13 years agoImplement the Objective-C 'instancetype' type, which is an alias of
Douglas Gregor [Thu, 8 Sep 2011 01:46:34 +0000 (01:46 +0000)]
Implement the Objective-C 'instancetype' type, which is an alias of
'id' that can be used (only!) via a contextual keyword as the result
type of an Objective-C message send. 'instancetype' then gives the
method a related result type, which we have already been inferring for
a variety of methods (new, alloc, init, self, retain). Addresses
<rdar://problem/9267640>.

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

13 years ago[driver] i386 kext preprocessor jobs also need their unsupported options
Chad Rosier [Thu, 8 Sep 2011 00:38:00 +0000 (00:38 +0000)]
[driver] i386 kext preprocessor jobs also need their unsupported options
filtered.  This happenis when -save-temps is specified.
<rdar://problem/10088387>

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

13 years agoOptimize the preprocessor's handling of the __import_module__
Douglas Gregor [Wed, 7 Sep 2011 23:11:54 +0000 (23:11 +0000)]
Optimize the preprocessor's handling of the __import_module__
keyword. We now handle this keyword in HandleIdentifier, making a note
for ourselves when we've seen the __import_module__ keyword so that
the next lexed token can trigger a module import (if needed). This
greatly simplifies Preprocessor::Lex(), and completely erases the 5.5%
-Eonly slowdown Argiris noted when I originally implemented
__import_module__. Big thanks to Argiris for noting that horrible
regression!

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

13 years ago[arcmt] Try fixing the windows buildbot.
Argyrios Kyrtzidis [Wed, 7 Sep 2011 21:50:18 +0000 (21:50 +0000)]
[arcmt] Try fixing the windows buildbot.

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

13 years agoRevert r139222, operator->() in PreprocessingRecord::iterator. It is useful
Argyrios Kyrtzidis [Wed, 7 Sep 2011 21:50:10 +0000 (21:50 +0000)]
Revert r139222, operator->() in PreprocessingRecord::iterator. It is useful
to meet the requirements of the InputIterator concept.

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

13 years agoChange diagnoseAddressOfInvalidType() to use an enum to determine what error message...
Richard Trieu [Wed, 7 Sep 2011 21:46:33 +0000 (21:46 +0000)]
Change diagnoseAddressOfInvalidType() to use an enum to determine what error message to display.  Also, move the function call into on location instead of having it spread among many places in the if/else statements.

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

13 years agoWhen parsing a function-try-block that does not have a
Douglas Gregor [Wed, 7 Sep 2011 20:36:12 +0000 (20:36 +0000)]
When parsing a function-try-block that does not have a
ctor-initializer, remember to call the Sema action to generate default
ctor-initializers. What a delightful little miscompile. Fixes PR10578
/ <rdar://problem/9877267>.

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

13 years agoFix Sema::CorrectTypo to ignore found but unresolved symbols
Kaelyn Uhrain [Wed, 7 Sep 2011 20:25:59 +0000 (20:25 +0000)]
Fix Sema::CorrectTypo to ignore found but unresolved symbols

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

13 years agoMore missing dependencies picked up by Ninja.
Peter Collingbourne [Wed, 7 Sep 2011 19:12:36 +0000 (19:12 +0000)]
More missing dependencies picked up by Ninja.

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

13 years agoFix up MCInstPrinter creation to take the new SubtargetInfo parameter (see LLVM r139237)
James Molloy [Wed, 7 Sep 2011 17:25:30 +0000 (17:25 +0000)]
Fix up MCInstPrinter creation to take the new SubtargetInfo parameter (see LLVM r139237)

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

13 years agoobjc-gc: More sema work for properties declared 'weak'
Fariborz Jahanian [Wed, 7 Sep 2011 16:24:21 +0000 (16:24 +0000)]
objc-gc: More sema work for properties declared 'weak'
in GC mode. // rdar://10073896

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

13 years agoExtract the emission of the diagnostic's location into a separate
Chandler Carruth [Wed, 7 Sep 2011 08:05:58 +0000 (08:05 +0000)]
Extract the emission of the diagnostic's location into a separate
function. This is really the beginning of the second phase of
refactorings here. The end goal is to have (roughly) three interfaces:

1) Base class to format a single diagnostic suitable for display on the
   console.
2) Extension of the base class which also displays a caret diagnostic
   suitable for display on the console.
3) An adaptor that implements the DiagnosticClient by delegating to #1
   and/or #2 as appropriate.

Once we have these, things like libclang's formatDiagnostic can use #1
and #2 to provide really well formatted (and consistently formatted!)
textual formatting of diagnostics.

Getting there is going to be quite a bit of shuffling. I'm basically
sketching out where the interface boundaries can be drawn for #1 and #2
within the existing classes. That lets me shuffle with a minimum of fuss
and delta. Once that's done, and any of the related interfaces that need
to change are updated, I'll hoist these into separate headers and
re-implement libclang in terms of their interfaces. Long WIP, but
comments at each step welcome. =D

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

13 years agoMove the HilightRange method from TextDiagnosticPrinter down to
Chandler Carruth [Wed, 7 Sep 2011 07:02:31 +0000 (07:02 +0000)]
Move the HilightRange method from TextDiagnosticPrinter down to
CaretDiagnostic. It's completely generic, with nothing to do with the
diagnostic client or info APIs.

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

13 years agoHoist the tab expansion into a helper function.
Chandler Carruth [Wed, 7 Sep 2011 05:36:50 +0000 (05:36 +0000)]
Hoist the tab expansion into a helper function.

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

13 years agoDon't compute the same line number in two places, once inside a loop.
Chandler Carruth [Wed, 7 Sep 2011 05:01:10 +0000 (05:01 +0000)]
Don't compute the same line number in two places, once inside a loop.

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

13 years agoMake sure the FunctionDecl's created by "#pragma weak" have correct ParmVarDecl's...
Eli Friedman [Wed, 7 Sep 2011 04:05:06 +0000 (04:05 +0000)]
Make sure the FunctionDecl's created by "#pragma weak" have correct ParmVarDecl's. PR10878.

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

13 years ago[arcmt] Remove xfail on test for windows, Takumi reported that it passes mingw and...
Argyrios Kyrtzidis [Wed, 7 Sep 2011 03:43:41 +0000 (03:43 +0000)]
[arcmt] Remove xfail on test for windows, Takumi reported that it passes mingw and msvc.

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

13 years agooperator->() in PreprocessingRecord::iterator is useless since we
Argyrios Kyrtzidis [Wed, 7 Sep 2011 03:43:39 +0000 (03:43 +0000)]
operator->() in PreprocessingRecord::iterator is useless since we
are returning a pointer to pointer.

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

13 years agoRename variables in SemaExpr.cpp to give a more consistant naming scheme.
Richard Trieu [Wed, 7 Sep 2011 02:02:10 +0000 (02:02 +0000)]
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.

ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType

Functions changed:
DiagnoseLogicalAndInLogicalOrLHS()
DiagnoseBinOpPrecedence()
ActOnBinOp()
BuildBinOp()

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

13 years agoRename variables in SemaExpr.cpp to give a more consistant naming scheme.
Richard Trieu [Wed, 7 Sep 2011 01:49:20 +0000 (01:49 +0000)]
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.

ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType

Functions changed:
CreateBuiltinBinOp()
DiagnoseBitwisePrecedence()

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

13 years agoSwitch the CharSourceRange array to a small vector. The array was
Chandler Carruth [Wed, 7 Sep 2011 01:47:09 +0000 (01:47 +0000)]
Switch the CharSourceRange array to a small vector. The array was
a stack array of a magical size with an assert() that we never
overflowed it. That seems incredibly risky. We also have a very nice API
for bundling up a vector we expect to usually have a small size without
loss of functionality or security if the size is excessive.

The fallout is to remove the last pointer+size parameter pair that are
traced through the recursive caret diagnostic emission.

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

13 years agoSwitch clang over to using fence/atomicrmw/cmpxchg instead of the intrinsics (which...
Eli Friedman [Wed, 7 Sep 2011 01:41:24 +0000 (01:41 +0000)]
Switch clang over to using fence/atomicrmw/cmpxchg instead of the intrinsics (which will go away).  LLVM CodeGen does almost exactly the same thing with these and the old intrinsics, so I'm reasonably confident this will not break anything.

There are still a few issues which need to be resolved with code generation for atomic load and store, so I'm not converting the places which need those for now.

I'm not entirely sure what to do about __builtin_llvm_memory_barrier: the fence instruction doesn't expose all the possibilities which can be expressed by __builtin_llvm_memory_barrier.  I would appreciate hearing from anyone who is using this intrinsic.

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

13 years agoRename variables in SemaExpr.cpp to give a more consistant naming scheme.
Richard Trieu [Wed, 7 Sep 2011 01:33:52 +0000 (01:33 +0000)]
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.

ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType

Functions changed:
CheckAssignmentOperands()
DiagnoseSelfAssignment()
checkArithmeticNull()

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

13 years agoRename variables in SemaExpr.cpp to give a more consistant naming scheme.
Richard Trieu [Wed, 7 Sep 2011 01:19:57 +0000 (01:19 +0000)]
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.

ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType

Functions changed:
CheckVectorCompareOperands()
CheckBitwiseOperands()
CheckLogicalOperands()

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

13 years agoChange the self-reference visitor (which gives the warning for self-reference oninita...
Richard Trieu [Wed, 7 Sep 2011 00:58:53 +0000 (00:58 +0000)]
Change the self-reference visitor (which gives the warning for self-reference oninitalization warning of -Wuninitialized) to exclude member variables that can decay into pointers.  This will cause it to no longer warn on this code:

struct foo { char a[100], *e; } bar = { .e = bar.a };

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

13 years agoobjc-gc: Don't force a __strong type'd property
Fariborz Jahanian [Wed, 7 Sep 2011 00:38:49 +0000 (00:38 +0000)]
objc-gc: Don't force a __strong type'd property
to be 'weak'. This prevents a crash and should
probably be flagged as error - later to come.

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

13 years agoIn Microsoft mode, if we are inside a template class member function and we can't...
Francois Pichet [Wed, 7 Sep 2011 00:14:57 +0000 (00:14 +0000)]
In Microsoft mode, if we are inside a template class member function and we can't resolve a function call then create a type-dependent CallExpr even if the function has no type dependent arguments. The goal is to postpone name lookup to instantiation time to be able to search into type dependent base classes.

With this patch in, clang will generate only 37 errors (down from 212) when parsing a typical MFC source file.

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

13 years ago[driver] When clang crashes, don't try to generate diagnostics (i.e.,
Chad Rosier [Tue, 6 Sep 2011 23:52:36 +0000 (23:52 +0000)]
[driver] When clang crashes, don't try to generate diagnostics (i.e.,
preprocessor output) with multiple -arch options.

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

13 years agoobjc-gc: Adds support for "weak" property attribute under GC.
Fariborz Jahanian [Tue, 6 Sep 2011 23:32:40 +0000 (23:32 +0000)]
objc-gc: Adds support for  "weak" property attribute under GC.
// rdar://10073896

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

13 years agoRemove the doxyment for this now defunct parameter.
Chandler Carruth [Tue, 6 Sep 2011 22:34:36 +0000 (22:34 +0000)]
Remove the doxyment for this now defunct parameter.

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

13 years agoDon't recompute the presumed loc twice in 5 lines of code... Spotted by
Chandler Carruth [Tue, 6 Sep 2011 22:34:33 +0000 (22:34 +0000)]
Don't recompute the presumed loc twice in 5 lines of code... Spotted by
inspection.

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

13 years agoUse ArrayRef for the fixit hint array rather than a pointer and a size.
Chandler Carruth [Tue, 6 Sep 2011 22:31:44 +0000 (22:31 +0000)]
Use ArrayRef for the fixit hint array rather than a pointer and a size.
Clean up loops over the hints to use the more idiomatic iterator form in
LLVM and Clang.

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

13 years agoHoist the construction of the FixItHint line into a member function with
Chandler Carruth [Tue, 6 Sep 2011 22:01:04 +0000 (22:01 +0000)]
Hoist the construction of the FixItHint line into a member function with
a defined interface. This isn't as nice as the previous one, but should
get better as I push through better data types in all these functions.

Also, I'm hoping to pull some aspects of this out into a common routine
(such as tab expansion).

Again, WIP, comments welcome as I'm going through.

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