]> granicus.if.org Git - clang/log
clang
15 years agoTemplate instantiation for IndirectGotoStmt. Now my life is complete.
Douglas Gregor [Sat, 16 May 2009 00:20:29 +0000 (00:20 +0000)]
Template instantiation for IndirectGotoStmt. Now my life is complete.

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

15 years agoTemplate instantiation for switch statements
Douglas Gregor [Fri, 15 May 2009 23:57:33 +0000 (23:57 +0000)]
Template instantiation for switch statements

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

15 years agoRemoved superfluous code.
Fariborz Jahanian [Fri, 15 May 2009 23:19:35 +0000 (23:19 +0000)]
Removed superfluous code.

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

15 years agoEarly support for __format__attribute on blocks.
Fariborz Jahanian [Fri, 15 May 2009 23:15:03 +0000 (23:15 +0000)]
Early support for __format__attribute on blocks.
Work in progress...

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

15 years agoBasic support for member exprs where the base expr type is dependent.
Anders Carlsson [Fri, 15 May 2009 23:10:19 +0000 (23:10 +0000)]
Basic support for member exprs where the base expr type is dependent.

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

15 years agoClasses with "+load" methods need to go in the non-lazy class list (or
Daniel Dunbar [Fri, 15 May 2009 22:33:15 +0000 (22:33 +0000)]
Classes with "+load" methods need to go in the non-lazy class list (or
else the method will not be found by the runtime at class load time).

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

15 years agoTemplate instantiation for break and continue statements.
Douglas Gregor [Fri, 15 May 2009 22:32:39 +0000 (22:32 +0000)]
Template instantiation for break and continue statements.

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

15 years agoIntroduce the EXPR macro into StmtNodes.def, so that we can
Douglas Gregor [Fri, 15 May 2009 22:19:30 +0000 (22:19 +0000)]
Introduce the EXPR macro into StmtNodes.def, so that we can
distinguish between expression and statement nodes. No functionality
change.

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

15 years agoTemplate instantiation for "for" loops
Douglas Gregor [Fri, 15 May 2009 22:12:32 +0000 (22:12 +0000)]
Template instantiation for "for" loops

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

15 years agoUpdate checker build.
Ted Kremenek [Fri, 15 May 2009 21:56:27 +0000 (21:56 +0000)]
Update checker build.

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

15 years agoTemplate instantiation for do-while statements.
Douglas Gregor [Fri, 15 May 2009 21:56:04 +0000 (21:56 +0000)]
Template instantiation for do-while statements.

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

15 years agoFactor code for adding module-level class lists into separate method.
Daniel Dunbar [Fri, 15 May 2009 21:48:48 +0000 (21:48 +0000)]
Factor code for adding module-level class lists into separate method.
 - No functionality change.

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

15 years agoFixup parsing for (throw,throw) and __extension__ throw 1.
Mike Stump [Fri, 15 May 2009 21:47:08 +0000 (21:47 +0000)]
Fixup parsing for (throw,throw) and __extension__ throw 1.

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

15 years agoTemplate instantiation for WhileStmt and CXXConditionDeclExpr.
Douglas Gregor [Fri, 15 May 2009 21:45:53 +0000 (21:45 +0000)]
Template instantiation for WhileStmt and CXXConditionDeclExpr.

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

15 years agoMake sure that we use the canonical type for the names of instantiated
Douglas Gregor [Fri, 15 May 2009 21:18:27 +0000 (21:18 +0000)]
Make sure that we use the canonical type for the names of instantiated
constructors and destructors. This is a requirement of
DeclarationNameTable::getCXXSpecialName that we weren't assert()'ing,
so it should have been caught much earlier :(

Big thanks to Anders for the test case.

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

15 years agoimproved on diagnosing misplacement of sentinel attributes.
Fariborz Jahanian [Fri, 15 May 2009 21:18:04 +0000 (21:18 +0000)]
improved on diagnosing misplacement of sentinel attributes.
No change in functionality.

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

15 years agoAdd hack to scan-build to fix PR 4215
Ted Kremenek [Fri, 15 May 2009 21:14:16 +0000 (21:14 +0000)]
Add hack to scan-build to fix PR 4215
(http://llvm.org/bugs/show_bug.cgi?id=4215): When xcodebuild is invoked with
-sdk iphonesimulator3.0, use gcc-4.2 instead of the system default gcc.

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

15 years agoadded -fblocks to the test.
Fariborz Jahanian [Fri, 15 May 2009 20:49:33 +0000 (20:49 +0000)]
added -fblocks to the test.

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

15 years agoAllow instantiation of NULL expressions and statements
Douglas Gregor [Fri, 15 May 2009 20:47:12 +0000 (20:47 +0000)]
Allow instantiation of NULL expressions and statements

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

15 years agoThis patch finishes off the sentinel attribute handling for
Fariborz Jahanian [Fri, 15 May 2009 20:33:25 +0000 (20:33 +0000)]
This patch finishes off the sentinel attribute handling for
blocks and function pointers.

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

15 years agoI take it back, InstantiateExpr does not check for null.
Anders Carlsson [Fri, 15 May 2009 20:29:28 +0000 (20:29 +0000)]
I take it back, InstantiateExpr does not check for null.

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

15 years agoInstantiation support for 'this'
Anders Carlsson [Fri, 15 May 2009 20:26:03 +0000 (20:26 +0000)]
Instantiation support for 'this'

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

15 years agoNo need to null check the expr, Sema::SemaRef.InstantiateExpr handles all that.
Anders Carlsson [Fri, 15 May 2009 20:10:48 +0000 (20:10 +0000)]
No need to null check the expr, Sema::SemaRef.InstantiateExpr handles all that.

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

15 years agoAdd SemaTemplateInstantiateStmt.cpp to Xcode project.
Anders Carlsson [Fri, 15 May 2009 20:08:59 +0000 (20:08 +0000)]
Add SemaTemplateInstantiateStmt.cpp to Xcode project.

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

15 years agoMake sure that the type associated with a class template is dependent.
Douglas Gregor [Fri, 15 May 2009 19:11:46 +0000 (19:11 +0000)]
Make sure that the type associated with a class template is dependent.

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

15 years agoTemplate instantiation for "if" statements. Also:
Douglas Gregor [Fri, 15 May 2009 18:53:42 +0000 (18:53 +0000)]
Template instantiation for "if" statements. Also:

  - Skip semantic analysis of the "if" condition if it is type-dependent.
  - Added the location of the "else" keyword into IfStmt, so that we can
    provide it for type-checking after template instantiation.

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

15 years agoUpdate checker build.
Ted Kremenek [Fri, 15 May 2009 18:40:51 +0000 (18:40 +0000)]
Update checker build.

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

15 years agoA C++ member function always has either weak linkage (if it's inline or defined inlin...
Anders Carlsson [Fri, 15 May 2009 18:35:39 +0000 (18:35 +0000)]
A C++ member function always has either weak linkage (if it's inline or defined inline) or strong linkage (other cases).

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

15 years agoMove statement instantiation into its own file. No functionality change
Douglas Gregor [Fri, 15 May 2009 18:22:25 +0000 (18:22 +0000)]
Move statement instantiation into its own file. No functionality change

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

15 years agoWhen word-wrapping, be more defensive about a ridiculously small number of columns...
Douglas Gregor [Fri, 15 May 2009 18:05:24 +0000 (18:05 +0000)]
When word-wrapping, be more defensive about a ridiculously small number of columns. Fixes <rdar://problem/6892178>

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

15 years agoCall ActOnStartOfFunctionDecl/ActOnFinishFunctionBody when
Douglas Gregor [Fri, 15 May 2009 17:59:04 +0000 (17:59 +0000)]
Call ActOnStartOfFunctionDecl/ActOnFinishFunctionBody when
instantiating the definition of a function from a template.

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

15 years agoName mangling for class template specializations and template arguments.
Anders Carlsson [Fri, 15 May 2009 16:09:15 +0000 (16:09 +0000)]
Name mangling for class template specializations and template arguments.

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

15 years agoFix processing of -Ufoo to not inject "#undef foo 1" into the predefines
Chris Lattner [Fri, 15 May 2009 16:08:43 +0000 (16:08 +0000)]
Fix processing of -Ufoo to not inject "#undef foo 1" into the predefines
buffer.  This caused exciting nonsense like this:

$ clang t.c -fsyntax-only -UMACRO
In file included from <built-in>:104:
<command line>:1:14: warning: extra tokens at end of #undef directive [-Wextra-tokens]
#undef MACRO 1
             ^
             //
1 diagnostic generated.

rdar://6891800

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

15 years agoFix crash when deriving the enclosing summary of a method whose first selector slot...
Ted Kremenek [Fri, 15 May 2009 15:49:00 +0000 (15:49 +0000)]
Fix crash when deriving the enclosing summary of a method whose first selector slot has a null IdentifierInfo*.  This happens when analyzing Growl.

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

15 years agoRemove extra whitespace character in string literal. Purely cosmetic.
Ted Kremenek [Fri, 15 May 2009 06:02:08 +0000 (06:02 +0000)]
Remove extra whitespace character in string literal.  Purely cosmetic.

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

15 years agoUpdate checker build.
Ted Kremenek [Fri, 15 May 2009 05:59:34 +0000 (05:59 +0000)]
Update checker build.

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

15 years agoUse dyn_cast instead of cast to allow our assumptions to be safely wrong.
Ted Kremenek [Fri, 15 May 2009 05:34:49 +0000 (05:34 +0000)]
Use dyn_cast instead of cast to allow our assumptions to be safely wrong.

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

15 years agoCleanup internal checks bug reporting, allowing intermediate diagnostics to be genera...
Ted Kremenek [Fri, 15 May 2009 05:25:09 +0000 (05:25 +0000)]
Cleanup internal checks bug reporting, allowing intermediate diagnostics to be generated for bad argument warnings, bad branches, etc.

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

15 years agoRe-enable passing analyzer options from scan-build to ccc-analyzer.
Ted Kremenek [Fri, 15 May 2009 04:20:31 +0000 (04:20 +0000)]
Re-enable passing analyzer options from scan-build to ccc-analyzer.

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

15 years agoDon't strip quotes in compiler line for -D arguments.
Ted Kremenek [Fri, 15 May 2009 04:07:18 +0000 (04:07 +0000)]
Don't strip quotes in compiler line for -D arguments.

Fixes PR 4205.

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

15 years agoBugReporter (extensive diagnostics): Do not include the range of target '}'
Ted Kremenek [Fri, 15 May 2009 02:46:13 +0000 (02:46 +0000)]
BugReporter (extensive diagnostics): Do not include the range of target '}'

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

15 years agoPathDiagnosticLocation::asRange(): for a PathDiagnosticLocation, the range of a DeclS...
Ted Kremenek [Fri, 15 May 2009 02:05:25 +0000 (02:05 +0000)]
PathDiagnosticLocation::asRange(): for a PathDiagnosticLocation, the range of a DeclStmt is only the decl, not
the decl + initializer.

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

15 years agoBugReporter (extensive diagnostics): Add control-flow piece to '}' in
Ted Kremenek [Fri, 15 May 2009 01:50:15 +0000 (01:50 +0000)]
BugReporter (extensive diagnostics): Add control-flow piece to '}' in
loop body when generating 'Looping back to the head of the loop'
diagnostics.

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

15 years agoInstantiate return statements.
Anders Carlsson [Fri, 15 May 2009 00:48:27 +0000 (00:48 +0000)]
Instantiate return statements.

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

15 years agoFixup debug information for the location information for __block
Mike Stump [Fri, 15 May 2009 00:29:54 +0000 (00:29 +0000)]
Fixup debug information for the location information for __block
variables.  For this to work, the backend needs to handle more complex
forms for locations.

A typical utterance would be:

        %forwarding = getelementptr %0* %use_by_ref, i32 0, i32 1               ; <i8**> [#uses=1]
        %0 = load i8** %forwarding              ; <i8*> [#uses=1]
        %1 = bitcast i8* %0 to %0*              ; <%0*> [#uses=1]
        %x = getelementptr %0* %1, i32 0, i32 4         ; <i32*> [#uses=1]
        %2 = bitcast i32* %x to { }*            ; <{ }*> [#uses=1]
        call void @llvm.dbg.declare({ }* %2, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable to { }*))

Presently when selection finds something it doesn't understand, it
just avoids generating any information, which is safe, just
incomplete.  Radar 6867696

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

15 years agoAdd NullStmt::Clone and use it
Anders Carlsson [Fri, 15 May 2009 00:21:21 +0000 (00:21 +0000)]
Add NullStmt::Clone and use it

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

15 years agoInstantiate goto and label statements. (Very useful, I know)
Anders Carlsson [Fri, 15 May 2009 00:15:26 +0000 (00:15 +0000)]
Instantiate goto and label statements. (Very useful, I know)

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

15 years agoAdd SemaTemplateInstantiateExpr.cpp to Xcode project.
Anders Carlsson [Fri, 15 May 2009 00:10:12 +0000 (00:10 +0000)]
Add SemaTemplateInstantiateExpr.cpp to Xcode project.

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

15 years agoImplement template instantiation for DeclStmt
Douglas Gregor [Fri, 15 May 2009 00:01:03 +0000 (00:01 +0000)]
Implement template instantiation for DeclStmt

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

15 years agoDon't warn if result/argument type of an implemented
Fariborz Jahanian [Thu, 14 May 2009 23:52:54 +0000 (23:52 +0000)]
Don't warn if result/argument type of an implemented
method is a qualified id which conforms to the matching type
of its method declaration.

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

15 years agoTemplate instantiation for the NULL statement. Lame, I know
Douglas Gregor [Thu, 14 May 2009 23:40:54 +0000 (23:40 +0000)]
Template instantiation for the NULL statement. Lame, I know

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

15 years agoIntroduce basic support for instantiating the definitions of member
Douglas Gregor [Thu, 14 May 2009 23:26:13 +0000 (23:26 +0000)]
Introduce basic support for instantiating the definitions of member
functions of class templates. Only compound statements and expression
statements are currently implemented.

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

15 years agoCheck that the function being overridden is virtual.
Anders Carlsson [Thu, 14 May 2009 22:15:41 +0000 (22:15 +0000)]
Check that the function being overridden is virtual.

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

15 years agoImprovements to the FunctionDecl getters/setters.
Anders Carlsson [Thu, 14 May 2009 21:46:00 +0000 (21:46 +0000)]
Improvements to the FunctionDecl getters/setters.

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

15 years agoIntroduce a stack of instantiation scopes that are used to store the mapping from...
Douglas Gregor [Thu, 14 May 2009 21:44:34 +0000 (21:44 +0000)]
Introduce a stack of instantiation scopes that are used to store the mapping from variable declarations that occur within templates to their instantiated counterparts

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

15 years agoFix <rdar://problem/6859457> [NSData dataWithBytesNoCopy] does not return a retained...
Ted Kremenek [Thu, 14 May 2009 21:29:16 +0000 (21:29 +0000)]
Fix <rdar://problem/6859457> [NSData dataWithBytesNoCopy] does not return a retained object.

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

15 years agoFix the same speling error in the test case (Duh).
Anders Carlsson [Thu, 14 May 2009 21:20:16 +0000 (21:20 +0000)]
Fix the same speling error in the test case (Duh).

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

15 years agoLink FunctionDecls instantiated from the member functions of a class
Douglas Gregor [Thu, 14 May 2009 21:06:31 +0000 (21:06 +0000)]
Link FunctionDecls instantiated from the member functions of a class
template to the FunctionDecls from which they were instantiated. This
is a necessary first step to support instantiation of the definitions
of such functions, but by itself does essentially nothing.

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

15 years agoFix a speling error.
Anders Carlsson [Thu, 14 May 2009 21:03:44 +0000 (21:03 +0000)]
Fix a speling error.

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

15 years agoupdated comments.
Fariborz Jahanian [Thu, 14 May 2009 20:57:28 +0000 (20:57 +0000)]
updated comments.

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

15 years agoAdds recognition of sentinel attribute on block declarations.
Fariborz Jahanian [Thu, 14 May 2009 20:53:39 +0000 (20:53 +0000)]
Adds recognition of sentinel attribute on block declarations.

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

15 years agoBetter diagnostics for covariance when checking overriding return types.
Anders Carlsson [Thu, 14 May 2009 19:52:19 +0000 (19:52 +0000)]
Better diagnostics for covariance when checking overriding return types.

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

15 years agoWhen there are any member new operators, global versions aren't looked up at all.
Sebastian Redl [Thu, 14 May 2009 18:11:41 +0000 (18:11 +0000)]
When there are any member new operators, global versions aren't looked up at all.

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

15 years agoDiagnose missing sentinel argument on a funciton call
Fariborz Jahanian [Thu, 14 May 2009 18:00:00 +0000 (18:00 +0000)]
Diagnose missing sentinel argument on a funciton call
with sentinel attribute.

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

15 years agoAvoid generating temp in source directory
Daniel Dunbar [Thu, 14 May 2009 17:00:11 +0000 (17:00 +0000)]
Avoid generating temp in source directory

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

15 years agoSkip the asm prefix when storing the name in block info.
Daniel Dunbar [Thu, 14 May 2009 16:42:16 +0000 (16:42 +0000)]
Skip the asm prefix when storing the name in block info.
 - Otherwise we emit internal names with embedded '\01' characters,
   which confuses some tools.

 - Ideally all the code which wants to get a "display name" for the
   given function should follow one code path, but this should be a
   monotonic improvement for now.

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

15 years agoIn C++, warn when something previously declared as a "struct" is later
Douglas Gregor [Thu, 14 May 2009 16:41:31 +0000 (16:41 +0000)]
In C++, warn when something previously declared as a "struct" is later
declared as a "class", or vice-versa. This warning is under the
control of -Wmismatched-tags, which is off by default.

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

15 years agoAdd forward declaration of Token. Thanks to Martin Doucha for pointing this out
Douglas Gregor [Thu, 14 May 2009 15:47:53 +0000 (15:47 +0000)]
Add forward declaration of Token. Thanks to Martin Doucha for pointing this out

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

15 years agoEnhance debug information for block literals. Radar 6867696
Mike Stump [Thu, 14 May 2009 02:03:51 +0000 (02:03 +0000)]
Enhance debug information for block literals.  Radar 6867696

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

15 years agoWe need to specify the "linkage name" to the subprogram now that we
Daniel Dunbar [Thu, 14 May 2009 01:45:24 +0000 (01:45 +0000)]
We need to specify the "linkage name" to the subprogram now that we
emit the correct "display name". I suspect we need more work here, see
FIXME for example.

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

15 years agoAdd return type checking for overriding virtual functions. We currently don't check...
Anders Carlsson [Thu, 14 May 2009 01:09:04 +0000 (01:09 +0000)]
Add return type checking for overriding virtual functions. We currently don't check covariance but that's next.

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

15 years agoImplement explicit instantiations of member classes of class templates, e.g.,
Douglas Gregor [Thu, 14 May 2009 00:28:11 +0000 (00:28 +0000)]
Implement explicit instantiations of member classes of class templates, e.g.,

  template<typename T>
  struct X {
    struct Inner;
  };

  template struct X<int>::Inner;

This change is larger than it looks because it also fixes some
a problem with nested-name-specifiers and tags. We weren't requiring
the DeclContext associated with the scope specifier of a tag to be
complete. Therefore, when looking for something like "struct
X<int>::Inner", we weren't instantiating X<int>.

This, naturally, uncovered a problem with member pointers, where we
were requiring the left-hand side of a member pointer access
expression (e.g., x->*) to be a complete type. However, this is wrong:
the semantics of this expression does not require a complete type (EDG
agrees).

Stuart vouched for me. Blame him.

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

15 years agoLook for and diagnose missing sentinel argument on message
Fariborz Jahanian [Wed, 13 May 2009 23:20:50 +0000 (23:20 +0000)]
Look for and diagnose missing sentinel argument on message
dispatch arguments which have sentinel attribute.

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

15 years agoMake sure not to include the LLVM asm prefix in function names for
Daniel Dunbar [Wed, 13 May 2009 23:08:57 +0000 (23:08 +0000)]
Make sure not to include the LLVM asm prefix in function names for
debug info.

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

15 years agoNote that clang follows the MSVC definition for #pragma pack.
Daniel Dunbar [Wed, 13 May 2009 21:40:49 +0000 (21:40 +0000)]
Note that clang follows the MSVC definition for #pragma pack.

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

15 years agoAdd a test case to showcase a difference in #pragma pack handling
Daniel Dunbar [Wed, 13 May 2009 21:34:08 +0000 (21:34 +0000)]
Add a test case to showcase a difference in #pragma pack handling
compared to gcc. This is worrisome, but I believe we are doing the
"correct" thing, and if I recall correctly I previously verified this
versus MSVC.

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

15 years agoUse an iterator type for found_decls_begin/found_decls_end.
Anders Carlsson [Wed, 13 May 2009 21:22:06 +0000 (21:22 +0000)]
Use an iterator type for found_decls_begin/found_decls_end.

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

15 years agoAdd a new, more advanced CheckDerivedToBaseConversion that takes custom diagnostic...
Anders Carlsson [Wed, 13 May 2009 21:11:42 +0000 (21:11 +0000)]
Add a new, more advanced CheckDerivedToBaseConversion that takes custom diagnostic IDs.

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

15 years agoAdd some basic type checking for attributes ns_returns_retained and
Ted Kremenek [Wed, 13 May 2009 21:07:32 +0000 (21:07 +0000)]
Add some basic type checking for attributes ns_returns_retained and
cf_returns_retained. Currently this attribute can now be applied to any
Objective-C method or C function that returns a pointer or Objective-C object
type.

Modify the tablegen definition of diagnostic 'warn_attribute_wrong_decl_type' to
expect that the diagnostics infrastructure will add quotes around the attribute
name when appropriate. Alonq with this change, I modified the places where this
warning is issued to passed the attribute's IdentifierInfo* instead of having a
hard-coded C constant string.

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

15 years agoUpdate checker build.
Ted Kremenek [Wed, 13 May 2009 20:49:00 +0000 (20:49 +0000)]
Update checker build.

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

15 years agoExplicit instantiations of templates now instantiate the definitions
Douglas Gregor [Wed, 13 May 2009 20:28:22 +0000 (20:28 +0000)]
Explicit instantiations of templates now instantiate the definitions
of class members (recursively). Only member classes are actually
instantiated; the instantiation logic for member functions and
variables are just stubs.

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

15 years agoDisable access control by default. It can be enabled with the -faccess-control option...
Anders Carlsson [Wed, 13 May 2009 19:49:53 +0000 (19:49 +0000)]
Disable access control by default. It can be enabled with the -faccess-control option. When we have better support for it, we can enable it by default again.

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

15 years agoAdd PostStmt::getStmtAs(). This unbreaks the build.
Ted Kremenek [Wed, 13 May 2009 19:23:41 +0000 (19:23 +0000)]
Add PostStmt::getStmtAs().  This unbreaks the build.

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

15 years agoEnhance diagnostics value tracking logic for null dereferences and uninitialized...
Ted Kremenek [Wed, 13 May 2009 19:16:35 +0000 (19:16 +0000)]
Enhance diagnostics value tracking logic for null dereferences and uninitialized values.

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

15 years agoAdd ExplodedNode utility methods 'getLocationAs()' and 'getFirstPred()'
Ted Kremenek [Wed, 13 May 2009 19:14:06 +0000 (19:14 +0000)]
Add ExplodedNode utility methods 'getLocationAs()' and 'getFirstPred()'

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

15 years agoDriver: Emit an unsupported error on -iframework.
Daniel Dunbar [Wed, 13 May 2009 19:05:04 +0000 (19:05 +0000)]
Driver: Emit an unsupported error on -iframework.

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

15 years agoABI handling: Fix invalid assertion, it is possible for a valid
Daniel Dunbar [Wed, 13 May 2009 18:54:26 +0000 (18:54 +0000)]
ABI handling: Fix invalid assertion, it is possible for a valid
coercion to be specified which truncates padding bits. It would be
nice to still have the assert, but we don't have any API call for the
unpadding size of a type yet.

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

15 years agoImprove the semantic checking for explicit instantiations of
Douglas Gregor [Wed, 13 May 2009 18:28:20 +0000 (18:28 +0000)]
Improve the semantic checking for explicit instantiations of
templates. In particular:
  - An explicit instantiation can follow an implicit instantiation (we
  were improperly diagnosing this as an error, previously).
  - In C++0x, an explicit instantiation that follows an explicit
  specialization of the same template specialization is ignored. In
  C++98, we just emit an extension warning.
  - In C++0x, an explicit instantiation must be in a namespace
  enclosing the original template. C++98 has no such requirement.

Also, fixed a longstanding FIXME regarding the integral type that is
used for the size of a constant array type when it is being instantiated.

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

15 years agoFix crasher reported in PR 4209 caused by an invalid summary
Ted Kremenek [Wed, 13 May 2009 18:16:01 +0000 (18:16 +0000)]
Fix crasher reported in PR 4209 caused by an invalid summary
generation when EvalObjCMessageExpr() did not resolve the
ObjCInterfaceDecl* for a receiver when the receiver's symbolic value
wasn't being explicitly tracked.

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

15 years agoSome early declarations to support sentinel attribute on
Fariborz Jahanian [Wed, 13 May 2009 18:09:35 +0000 (18:09 +0000)]
Some early declarations to support sentinel attribute on
message dispatches (and function calls later). No change in
functionality.

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

15 years agoremove the obsolete -fprint-source-range-info option
Chris Lattner [Wed, 13 May 2009 17:08:18 +0000 (17:08 +0000)]
remove the obsolete -fprint-source-range-info option

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

15 years agoRemoved 4-letter :) word in comment.
Fariborz Jahanian [Wed, 13 May 2009 16:19:02 +0000 (16:19 +0000)]
Removed 4-letter :) word in comment.
Used simple array for Selector build.

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

15 years agoFix <rdar://problem/6880975> [format string] Assertion failed: (Arg < NumArgs &&...
Ted Kremenek [Wed, 13 May 2009 16:06:05 +0000 (16:06 +0000)]
Fix <rdar://problem/6880975> [format string] Assertion failed: (Arg < NumArgs && "Arg access out of range!").

For format string checking, only check the type of the format
specifier for non-vararg functions.

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

15 years agoFix crasher in CFRefCount.cpp reported by Nikita Zhuk due to recently added autorelea...
Ted Kremenek [Wed, 13 May 2009 07:12:33 +0000 (07:12 +0000)]
Fix crasher in CFRefCount.cpp reported by Nikita Zhuk due to recently added autorelease tracking.

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

15 years agoFix rdar://6880630 - # in _Pragma does not start a preprocessor directive.
Chris Lattner [Wed, 13 May 2009 06:10:29 +0000 (06:10 +0000)]
Fix rdar://6880630 - # in _Pragma does not start a preprocessor directive.

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

15 years agoconvert test to use -verify
Chris Lattner [Wed, 13 May 2009 06:07:25 +0000 (06:07 +0000)]
convert test to use -verify

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

15 years agorename test
Chris Lattner [Wed, 13 May 2009 06:07:04 +0000 (06:07 +0000)]
rename test

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

15 years agoFix rdar://6880951 by rejecting vectors of vectors.
Chris Lattner [Wed, 13 May 2009 05:13:44 +0000 (05:13 +0000)]
Fix rdar://6880951 by rejecting vectors of vectors.
It seems dubious to me that isIntegerType() returns true for
vectors of integers, but not complex integers.  This should
probably be rethought, I'll file a bugzilla.

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

15 years agoreject use of the GNU _Decimal32 extension with a diagnostic, not an abort.
Chris Lattner [Wed, 13 May 2009 05:02:08 +0000 (05:02 +0000)]
reject use of the GNU _Decimal32 extension with a diagnostic, not an abort.
rdar://6880104

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

15 years agoeli correctly points out that this code is dead, just rip it out for
Chris Lattner [Wed, 13 May 2009 04:52:12 +0000 (04:52 +0000)]
eli correctly points out that this code is dead, just rip it out for
now until someone does it right

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