]> granicus.if.org Git - clang/log
clang
15 years agoFix another case where the extern-ness of extern "C" wasn't being captured.
Anders Carlsson [Sat, 16 May 2009 22:05:23 +0000 (22:05 +0000)]
Fix another case where the extern-ness of extern "C" wasn't being captured.

This makes me think that we should make hasExternalStorage perform this check...

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

15 years agoDon't return member pointer types for static member functions. Fixes 6879261.
Anders Carlsson [Sat, 16 May 2009 21:43:42 +0000 (21:43 +0000)]
Don't return member pointer types for static member functions. Fixes 6879261.

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

15 years agoPR3942: Don't warn on unsigned overflow in preprocessor expressions.
Eli Friedman [Sat, 16 May 2009 21:24:10 +0000 (21:24 +0000)]
PR3942: Don't warn on unsigned overflow in preprocessor expressions.

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

15 years agoextern "C" should preserve the 'extern' qualifier for VarDecls. Fixes 6853728.
Anders Carlsson [Sat, 16 May 2009 21:02:39 +0000 (21:02 +0000)]
extern "C" should preserve the 'extern' qualifier for VarDecls. Fixes 6853728.

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

15 years agoImprove checking of member expressions where the base type is a dependent type.
Anders Carlsson [Sat, 16 May 2009 20:31:20 +0000 (20:31 +0000)]
Improve checking of member expressions where the base type is a dependent type.

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

15 years agoUpdate test case; I'm confused why this wasn't failing on the buildbot
Daniel Dunbar [Sat, 16 May 2009 19:30:01 +0000 (19:30 +0000)]
Update test case; I'm confused why this wasn't failing on the buildbot
though?

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

15 years agoTest case for previous commit. Explicit instantiation does the trick. (Thanks, Anders.)
Sebastian Redl [Sat, 16 May 2009 18:59:35 +0000 (18:59 +0000)]
Test case for previous commit. Explicit instantiation does the trick. (Thanks, Anders.)

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

15 years agoImplement instantiation of a few boring, simple expressions. I don't think these...
Sebastian Redl [Sat, 16 May 2009 18:50:46 +0000 (18:50 +0000)]
Implement instantiation of a few boring, simple expressions. I don't think these are testable yet, though.

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

15 years agoMissing change for r71941 (PR2044).
Eli Friedman [Sat, 16 May 2009 13:58:00 +0000 (13:58 +0000)]
Missing change for r71941 (PR2044).

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

15 years agoAvoid calling mergeTypes in C++. I think these are the correct C++
Eli Friedman [Sat, 16 May 2009 13:54:38 +0000 (13:54 +0000)]
Avoid calling mergeTypes in C++.  I think these are the correct C++
alternatives, but please correct me if I'm wrong.

I eventually plan to assert in mergeTypes that we aren't in C++ mode
because composite types are fundamentally not a part of C++. The
remaining callers for code in the regression tests are
Sema::WarnConflictingTypedMethods and CodeGenFunction::EmitFunctionProlog;
I'm not quite sure what the correct approach is for those callers.

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

15 years agoAdd stricter checking for va_arg.
Eli Friedman [Sat, 16 May 2009 12:46:54 +0000 (12:46 +0000)]
Add stricter checking for va_arg.

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

15 years agoPR2044: reject declarations of functions returning variably modified
Eli Friedman [Sat, 16 May 2009 12:15:55 +0000 (12:15 +0000)]
PR2044: reject declarations of functions returning variably modified
types.

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

15 years agoPR3009: Get rid of bogus warning for scalar compound literals.
Eli Friedman [Sat, 16 May 2009 11:45:48 +0000 (11:45 +0000)]
PR3009: Get rid of bogus warning for scalar compound literals.

This patch isn't quite ideal in that it eliminates the warning for
constructs like "int a = {1};", where the braces are in fact redundant.
However, that would have required a bunch of refactoring, and it's
much less likely to cause confusion compared to redundant nested braces.

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

15 years agoReflow some comments.
Mike Stump [Sat, 16 May 2009 07:57:57 +0000 (07:57 +0000)]
Reflow some comments.

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

15 years agoReflow some comments.
Mike Stump [Sat, 16 May 2009 07:39:55 +0000 (07:39 +0000)]
Reflow some comments.

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

15 years agoImplement a FIXME, we now pass in the locations of the braces for enums.
Mike Stump [Sat, 16 May 2009 07:06:02 +0000 (07:06 +0000)]
Implement a FIXME, we now pass in the locations of the braces for enums.

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

15 years agoUpdate checker build.
Ted Kremenek [Sat, 16 May 2009 06:05:27 +0000 (06:05 +0000)]
Update checker build.

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

15 years agoRemove useless wrapper.
Eli Friedman [Sat, 16 May 2009 05:56:02 +0000 (05:56 +0000)]
Remove useless wrapper.

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

15 years agoFixup __extension__ i = 1 parsing. Thanks Eli!
Mike Stump [Sat, 16 May 2009 04:31:34 +0000 (04:31 +0000)]
Fixup __extension__ i = 1 parsing.  Thanks Eli!

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

15 years agoFix: <rdar://problem/6893565> False positive: don't flag leaks for return types that...
Ted Kremenek [Sat, 16 May 2009 01:38:01 +0000 (01:38 +0000)]
Fix: <rdar://problem/6893565> False positive: don't flag leaks for return types that cannot be determined to be CF types

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

15 years agoFix another bug in BugReporter where we wouldn't always select the bug report in...
Ted Kremenek [Sat, 16 May 2009 01:11:58 +0000 (01:11 +0000)]
Fix another bug in BugReporter where we wouldn't always select the bug report in a bug equivalence class with the shortest path.

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

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