]>
granicus.if.org Git - clang/log
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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