]> granicus.if.org Git - clang/log
clang
15 years agoObscure code gen bug related to sending
Fariborz Jahanian [Sat, 28 Feb 2009 20:07:56 +0000 (20:07 +0000)]
Obscure code gen bug related to sending
message to 'super' in a class method declared in
cateogy (darwin specific).

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

15 years agoFix a crash in test/Parser/control-scope.c that testrunner didn't
Chris Lattner [Sat, 28 Feb 2009 19:37:57 +0000 (19:37 +0000)]
Fix a crash in test/Parser/control-scope.c that testrunner didn't
notice because it was a negative test with a fix suggested by
Jean-Daniel Dupas.  Convert the test from a negative to a positive
test to catch stuff like this.

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

15 years agoremove static ctor.
Chris Lattner [Sat, 28 Feb 2009 19:37:06 +0000 (19:37 +0000)]
remove static ctor.

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

15 years agoimprove compatibility with the VC++'08 C++ compiler. Patch by
Chris Lattner [Sat, 28 Feb 2009 19:01:03 +0000 (19:01 +0000)]
improve compatibility with the VC++'08 C++ compiler.  Patch by
Niklas Larsson!

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

15 years agofix inverted conditional, rdar://6633188
Chris Lattner [Sat, 28 Feb 2009 18:53:33 +0000 (18:53 +0000)]
fix inverted conditional, rdar://6633188

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

15 years ago"This patch addresses two FIXME on ObjCCategoryImplDecl:
Chris Lattner [Sat, 28 Feb 2009 18:42:10 +0000 (18:42 +0000)]
"This patch addresses two FIXME on ObjCCategoryImplDecl:

/// FIXME: Like ObjCImplementationDecl, this should not be a NamedDecl!
/// FIXME: Introduce a new common base class for ObjCImplementationDecl and ObjCCategoryImplDecl

It adds an IndentifierInfo ivar to the ObjCCategoryImplDecl, so it can inherits from Decl and not NamedDecl (I'm not sure about the memory management of this ivar).

And now that both ObjCImplementationDecl and ObjCCategoryImplDecl have the same super classes, it allow creation of a common base class:  ObjCImplDecl"

Patch by Jean-Daniel Dupas!

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

15 years agobrain thinking memcpy, fingers thinking memset :)
Chris Lattner [Sat, 28 Feb 2009 18:31:01 +0000 (18:31 +0000)]
brain thinking memcpy, fingers thinking memset :)

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

15 years agoafter going around in circles a few times, finally cave and emit structure
Chris Lattner [Sat, 28 Feb 2009 18:18:58 +0000 (18:18 +0000)]
after going around in circles a few times, finally cave and emit structure
copies with memcpy instead of memmove.  This matches what GCC does and if it
causes a problem with a particular libc we can always fix it with a target
hook.

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

15 years agoTargetInfo::validateAsmConstraint now takes a reference to the full constraints strin...
Anders Carlsson [Sat, 28 Feb 2009 17:11:49 +0000 (17:11 +0000)]
TargetInfo::validateAsmConstraint now takes a reference to the full constraints string. This will make it possible to support multi-character constraints. No functionality change (for now).

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

15 years agoMinor name change (move the ObjC prefix to a more appropriate place).
Steve Naroff [Sat, 28 Feb 2009 16:59:13 +0000 (16:59 +0000)]
Minor name change (move the ObjC prefix to a more appropriate place).

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

15 years agoFix <rdar://problem/6451399> problems with labels and blocks.
Steve Naroff [Sat, 28 Feb 2009 16:48:43 +0000 (16:48 +0000)]
Fix <rdar://problem/6451399> problems with labels and blocks.

- Move the 'LabelMap' from Sema to Scope. To avoid layering problems, the second element is now a 'StmtTy *', which makes the LabelMap a bit more verbose to deal with.
- Add 'ActiveScope' to Sema. Managed by ActOnStartOfFunctionDef(), ObjCActOnStartOfMethodDef(), ActOnBlockStmtExpr().
- Changed ActOnLabelStmt(), ActOnGotoStmt(), ActOnAddrLabel(), and ActOnFinishFunctionBody() to use the new ActiveScope.
- Added FIXME to workaround in ActOnFinishFunctionBody() (for dealing with C++ nested functions).

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

15 years agoAdapt help string to what the code is doing (default is lang_gnu99). Thanks rdivacky!
Gabor Greif [Sat, 28 Feb 2009 09:22:15 +0000 (09:22 +0000)]
Adapt help string to what the code is doing (default is lang_gnu99). Thanks rdivacky!

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

15 years agoFirst cut CodeGen support for __block variables.
Mike Stump [Sat, 28 Feb 2009 09:07:16 +0000 (09:07 +0000)]
First cut CodeGen support for __block variables.

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

15 years agoCheck a few more kinds of declarations that make a scope.
Eli Friedman [Sat, 28 Feb 2009 06:22:14 +0000 (06:22 +0000)]
Check a few more kinds of declarations that make a scope.

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

15 years agoStart of checking for gotos which jump to an illegal destination.
Eli Friedman [Sat, 28 Feb 2009 05:41:13 +0000 (05:41 +0000)]
Start of checking for gotos which jump to an illegal destination.
As far as I know, this catches all cases of jumping into the scope of a
variable with a variably modified type (excluding statement
expressions) in C.  This is missing some stuff we probably want to check
(other kinds of variably modified declarations, statement expressions,
indirect gotos/addresses of labels in a scope, ObjC @try/@finally, cleanup
attribute), the diagnostics aren't very good, and it's not particularly
efficient, but it's a decent start.

This patch is a slightly modified version of the patch I attached to
PR3259, and it fixes that bug.  I was sort of planning on improving
it, but I think it's okay as-is, especially since it looks like CodeGen
doesn't have any use for this sort of data structure.  The only
significant change I can think of from the version I attached to PR3259
is that this version skips running the checking code when a function
doesn't contain any labels.

This patch doesn't cover case statements, which also need similar
checking; I'm not sure how we should deal with that. Extending the goto
checking to also check case statements wouldn't be too hard; it's just a
matter of keeping track of the scope of the closest switch and checking that
the scope of every case is the same as the scope of the switch.  That said,
it would likely be a performance hit to run this check on every
function (it's an extra pass over the entire function), so we probably want
some other solution.

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

15 years agoFix obvious shortcoming in the implementations of Evaluate for
Eli Friedman [Sat, 28 Feb 2009 03:59:05 +0000 (03:59 +0000)]
Fix obvious shortcoming in the implementations of Evaluate for
integer __real__ and __imag__.  Not sure how I missed this.

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

15 years agoUpdate checker build.
Ted Kremenek [Sat, 28 Feb 2009 02:04:49 +0000 (02:04 +0000)]
Update checker build.

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

15 years agoEliminate CXXRecordType
Douglas Gregor [Sat, 28 Feb 2009 01:32:25 +0000 (01:32 +0000)]
Eliminate CXXRecordType

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

15 years agoAdd a FIXME for something I can't look at just yet
Douglas Gregor [Sat, 28 Feb 2009 01:09:26 +0000 (01:09 +0000)]
Add a FIXME for something I can't look at just yet

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

15 years agoTemplate instantiation for function types
Douglas Gregor [Sat, 28 Feb 2009 01:04:19 +0000 (01:04 +0000)]
Template instantiation for function types

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

15 years agoAlignment of pointers in __objc_classlist must be on their
Fariborz Jahanian [Sat, 28 Feb 2009 00:54:00 +0000 (00:54 +0000)]
Alignment of pointers in __objc_classlist must be on their
natural alignment. Otherwise, the excess hole confuses the
objc2 runtime (this is darwin specific).

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

15 years agoImplement template instantiation for pointer, reference, and (some)
Douglas Gregor [Sat, 28 Feb 2009 00:25:32 +0000 (00:25 +0000)]
Implement template instantiation for pointer, reference, and (some)
array types. Semantic checking for the construction of these types has
been factored out of GetTypeForDeclarator and into separate
subroutines (BuildPointerType, BuildReferenceType,
BuildArrayType). We'll be doing the same thing for all other types
(and declarations and expressions).

As part of this, moved the type-instantiation functions into a class
in an anonymous namespace.

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

15 years agoFix enumeration in switch warnings. No behavior change.
Eli Friedman [Fri, 27 Feb 2009 23:15:07 +0000 (23:15 +0000)]
Fix enumeration in switch warnings.  No behavior change.

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

15 years agoFix enumeration in switch warnings, plus misc comment changes. No
Eli Friedman [Fri, 27 Feb 2009 23:04:43 +0000 (23:04 +0000)]
Fix enumeration in switch warnings, plus misc comment changes. No
behavior change.

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

15 years agoFix PR3612. We ensure that we add builtins to the GlobalDeclMap and
Mike Stump [Fri, 27 Feb 2009 22:42:30 +0000 (22:42 +0000)]
Fix PR3612.  We ensure that we add builtins to the GlobalDeclMap and
we ensure that things added to the module can be found even when they
are not in GlobalDeclMap.  The later is for increased flexibility,
should someone want to do something tricky like extern "Ada" in the
same module.

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

15 years agoDiagnose gc attribute mismatch of property and its ivar.
Fariborz Jahanian [Fri, 27 Feb 2009 22:38:11 +0000 (22:38 +0000)]
Diagnose gc attribute mismatch of property and its ivar.

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

15 years agoGive a code insertion hint for how to fix 'implicit int' warnings and errors.
Chris Lattner [Fri, 27 Feb 2009 22:31:56 +0000 (22:31 +0000)]
Give a code insertion hint for how to fix 'implicit int' warnings and errors.

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

15 years agoFix a typo
Douglas Gregor [Fri, 27 Feb 2009 22:05:23 +0000 (22:05 +0000)]
Fix a typo

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

15 years agoWhen retrieving the location of a Node, for MemberExprs use the location of the
Ted Kremenek [Fri, 27 Feb 2009 20:05:10 +0000 (20:05 +0000)]
When retrieving the location of a Node, for MemberExprs use the location of the
'.' or '->'.

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

15 years agoIn BuildAnonymousStructUnionMemberReference, we shouldn't invalidate OpLoc when
Ted Kremenek [Fri, 27 Feb 2009 19:58:12 +0000 (19:58 +0000)]
In BuildAnonymousStructUnionMemberReference, we shouldn't invalidate OpLoc when
building nested member expressions. This location is used to determine the range
of the entire expression, and the expression itself already has its location
inherited from its Base.

This fixes <rdar://problem/6629829>.

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

15 years agoImplement the basic approach for instantiating types, with a lot of FIXME'd
Douglas Gregor [Fri, 27 Feb 2009 19:31:52 +0000 (19:31 +0000)]
Implement the basic approach for instantiating types, with a lot of FIXME'd
stubs for those types we don't yet know how to instantiate (everything
that isn't a template parameter!).

We now instantiate default arguments for template type parameters when
needed. This will be our testbed while I fill out the remaining
type-instantiation logic.

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

15 years agominor wording changes.
Chris Lattner [Fri, 27 Feb 2009 19:31:12 +0000 (19:31 +0000)]
minor wording changes.

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

15 years agoupgrade various 'implicit int' warnings from an ext-warn to warning when not
Chris Lattner [Fri, 27 Feb 2009 18:53:28 +0000 (18:53 +0000)]
upgrade various 'implicit int' warnings from an ext-warn to warning when not
in C89 mode.  This makes it enabled by default instead of only enabled with
-pedantic.  Clang defaults to c99 mode, so people will see this more often
than with GCC, but they can always use -std=c89 if they really want c89.

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

15 years agocleanup
Chris Lattner [Fri, 27 Feb 2009 18:38:20 +0000 (18:38 +0000)]
cleanup

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

15 years agocleanup
Chris Lattner [Fri, 27 Feb 2009 18:35:46 +0000 (18:35 +0000)]
cleanup

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

15 years agoSilence warnings.
Mike Stump [Fri, 27 Feb 2009 18:32:39 +0000 (18:32 +0000)]
Silence warnings.

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

15 years agoWhen checking printf-arguments for functions with '__attribute__ ((format (printf...
Ted Kremenek [Fri, 27 Feb 2009 17:58:43 +0000 (17:58 +0000)]
When checking printf-arguments for functions with '__attribute__ ((format (printf, X, Y)))'
set HasVAListArg to true when 'Y' is 0 (i.e., ignore the data arguments).

This fixes <rdar://problem/6623513>.

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

15 years agoClean up and document code modification hints.
Douglas Gregor [Fri, 27 Feb 2009 17:53:17 +0000 (17:53 +0000)]
Clean up and document code modification hints.

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

15 years agochange a diagnostic message from something pedantically correct but
Chris Lattner [Fri, 27 Feb 2009 17:15:01 +0000 (17:15 +0000)]
change a diagnostic message from something pedantically correct but
useless to something more vague but hopefully more clear.
rdar://6624173

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

15 years agoOops, Ted beat me to it. I'll just play angry god and remove his version!
Daniel Dunbar [Fri, 27 Feb 2009 17:10:38 +0000 (17:10 +0000)]
Oops, Ted beat me to it. I'll just play angry god and remove his version!

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

15 years agoAdd coverage of "member of anonymous union redeclares ..." diagnostic.
Daniel Dunbar [Fri, 27 Feb 2009 17:07:01 +0000 (17:07 +0000)]
Add coverage of "member of anonymous union redeclares ..." diagnostic.

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

15 years agoAdd test case for PR 3675.
Ted Kremenek [Fri, 27 Feb 2009 16:48:08 +0000 (16:48 +0000)]
Add test case for PR 3675.

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

15 years agoUpdate checker build.
Ted Kremenek [Fri, 27 Feb 2009 07:16:04 +0000 (07:16 +0000)]
Update checker build.

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

15 years agoChange the AST generated for offsetof a bit so that it looks like a
Eli Friedman [Fri, 27 Feb 2009 06:44:11 +0000 (06:44 +0000)]
Change the AST generated for offsetof a bit so that it looks like a
normal expression, and change Evaluate and IRGen to evaluate it like a
normal expression.  This simplifies the code significantly, and fixes
PR3396.

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

15 years agoDon't report 'Parser Rejects' for conftest files.
Ted Kremenek [Fri, 27 Feb 2009 06:17:38 +0000 (06:17 +0000)]
Don't report 'Parser Rejects' for conftest files.

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

15 years agoCorrectly check for ccc-analyzer in the same directory as scan-build.
Ted Kremenek [Fri, 27 Feb 2009 06:17:05 +0000 (06:17 +0000)]
Correctly check for ccc-analyzer in the same directory as scan-build.

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

15 years agoChange the way clang generates union types a bit so it plays well
Eli Friedman [Fri, 27 Feb 2009 04:53:40 +0000 (04:53 +0000)]
Change the way clang generates union types a bit so it plays well
with the LLVM C backend.

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

15 years agoSome additional ICE tests.
Eli Friedman [Fri, 27 Feb 2009 04:46:32 +0000 (04:46 +0000)]
Some additional ICE tests.

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

15 years agoSome minor improvements to Evaluate.
Eli Friedman [Fri, 27 Feb 2009 04:45:43 +0000 (04:45 +0000)]
Some minor improvements to Evaluate.

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

15 years agoFix minor memory leak. Add comment describing what we need to do for
Eli Friedman [Fri, 27 Feb 2009 04:17:12 +0000 (04:17 +0000)]
Fix minor memory leak.  Add comment describing what we need to do for
strict constant initializer checking.

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

15 years agoMinor cleanup: use getDeclAlignInBytes helper.
Eli Friedman [Fri, 27 Feb 2009 04:11:37 +0000 (04:11 +0000)]
Minor cleanup: use getDeclAlignInBytes helper.

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

15 years agoMake isICE assert when Evaluate can't evaluate an ICE, as suggested by
Eli Friedman [Fri, 27 Feb 2009 04:07:58 +0000 (04:07 +0000)]
Make isICE assert when Evaluate can't evaluate an ICE, as suggested by
Daniel.  Some minor fixes/cleanup.  Allow __builtin_choose_expr,
__real__, and __imag__ in ICEs, following gcc's example.

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

15 years agoThe middle operand in ?: is optional, really.
Mike Stump [Fri, 27 Feb 2009 03:16:57 +0000 (03:16 +0000)]
The middle operand in ?: is optional, really.

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

15 years agoCreate a new TypeNodes.def file that enumerates all of the types,
Douglas Gregor [Thu, 26 Feb 2009 23:50:07 +0000 (23:50 +0000)]
Create a new TypeNodes.def file that enumerates all of the types,
giving them rough classifications (normal types, never-canonical
types, always-dependent types, abstract type representations) and
making it far easier to make sure that we've hit all of the cases when
decoding types.

Switched some switch() statements on the type class over to using this
mechanism, and filtering out those things we don't care about. For
example, CodeGen should never see always-dependent or non-canonical
types, while debug info generation should never see always-dependent
types. More switch() statements on the type class need to be moved
over to using this approach, so that we'll get warnings when we add a
new type then fail to account for it somewhere in the compiler.

As part of this, some types have been renamed:

  TypeOfExpr -> TypeOfExprType
  FunctionTypeProto -> FunctionProtoType
  FunctionTypeNoProto -> FunctionNoProtoType

There shouldn't be any functionality change...

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

15 years agomake ASTContext::WCharTy a bit more sensical. In C++, it is a disctint type,
Chris Lattner [Thu, 26 Feb 2009 23:43:47 +0000 (23:43 +0000)]
make ASTContext::WCharTy a bit more sensical.  In C++, it is a disctint type,
but in C99 it is just another int type.

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

15 years agofix a bozobug.
Chris Lattner [Thu, 26 Feb 2009 23:42:47 +0000 (23:42 +0000)]
fix a bozobug.

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

15 years agorename test
Chris Lattner [Thu, 26 Feb 2009 23:36:18 +0000 (23:36 +0000)]
rename test

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

15 years agook, not as broken as I thought, just confusing. This allows
Chris Lattner [Thu, 26 Feb 2009 23:36:02 +0000 (23:36 +0000)]
ok, not as broken as I thought, just confusing.  This allows
initialization of wchar_t arrays with wide strings, and generalizes
wchar_size.c to work on all targets.

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

15 years agoallow wide strings to initialize arrays compatible with wchar_t.
Chris Lattner [Thu, 26 Feb 2009 23:26:43 +0000 (23:26 +0000)]
allow wide strings to initialize arrays compatible with wchar_t.
Unfortunately this doesn't work yet because wchar_t is completely
broken in C.

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

15 years agoPass -ffreestanding' to clang.
Ted Kremenek [Thu, 26 Feb 2009 23:09:43 +0000 (23:09 +0000)]
Pass -ffreestanding' to clang.

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

15 years agoDo not issue bogus error on __weak/__strong ivar access.
Fariborz Jahanian [Thu, 26 Feb 2009 23:05:51 +0000 (23:05 +0000)]
Do not issue bogus error on __weak/__strong ivar access.

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

15 years agofix some sema problems with wide strings and hook up basic codegen for them.
Chris Lattner [Thu, 26 Feb 2009 23:01:51 +0000 (23:01 +0000)]
fix some sema problems with wide strings and hook up basic codegen for them.

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

15 years agoAdd -emit-llvm-only option (generate LLVM IR & run passes, but discard
Daniel Dunbar [Thu, 26 Feb 2009 22:39:37 +0000 (22:39 +0000)]
Add -emit-llvm-only option (generate LLVM IR & run passes, but discard
output).
 - For timing IRgen phase.

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

15 years agoCouple of meta-data segments were wrong. This patch fixes them.
Fariborz Jahanian [Thu, 26 Feb 2009 22:30:39 +0000 (22:30 +0000)]
Couple of meta-data segments were wrong. This patch fixes them.

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

15 years agoMake the type associated with a ClassTemplateSpecializationDecl be a
Douglas Gregor [Thu, 26 Feb 2009 22:19:44 +0000 (22:19 +0000)]
Make the type associated with a ClassTemplateSpecializationDecl be a
nicely sugared type that shows how the user wrote the actual
specialization. This sugared type won't actually show up until we
start doing instantiations.

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

15 years agoPathDiagnosticPiece now automatically strips off trailing periods in diagnostic messages.
Ted Kremenek [Thu, 26 Feb 2009 21:30:32 +0000 (21:30 +0000)]
PathDiagnosticPiece now automatically strips off trailing periods in diagnostic messages.

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

15 years agoAdd support to emit debug info for objective-c interfaces.
Devang Patel [Thu, 26 Feb 2009 21:10:26 +0000 (21:10 +0000)]
Add support to emit debug info for objective-c interfaces.
(This is not yet used.)

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

15 years agoRefine some grammar in the retain/release diagnostics.
Ted Kremenek [Thu, 26 Feb 2009 21:04:07 +0000 (21:04 +0000)]
Refine some grammar in the retain/release diagnostics.

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

15 years agoIntroduce code modification hints into the diagnostics system. When we
Douglas Gregor [Thu, 26 Feb 2009 21:00:50 +0000 (21:00 +0000)]
Introduce code modification hints into the diagnostics system. When we
know how to recover from an error, we can attach a hint to the
diagnostic that states how to modify the code, which can be one of:

  - Insert some new code (a text string) at a particular source
    location
  - Remove the code within a given range
  - Replace the code within a given range with some new code (a text
    string)

Right now, we use these hints to annotate diagnostic information. For
example, if one uses the '>>' in a template argument in C++98, as in
this code:

  template<int I> class B { };
  B<1000 >> 2> *b1;

we'll warn that the behavior will change in C++0x. The fix is to
insert parenthese, so we use code insertion annotations to illustrate
where the parentheses go:

test.cpp:10:10: warning: use of right-shift operator ('>>') in template
argument will require parentheses in C++0x
  B<1000 >> 2> *b1;
         ^
    (        )

Use of these annotations is partially implemented for HTML
diagnostics, but it's not (yet) producing valid HTML, which may be
related to PR2386, so it has been #if 0'd out.

In this future, we could consider hooking this mechanism up to the
rewriter to actually try to fix these problems during compilation (or,
after a compilation whose only errors have fixes). For now, however, I
suggest that we use these code modification hints whenever we can, so
that we get better diagnostics now and will have better coverage when
we find better ways to use this information.

This also fixes PR3410 by placing the complaint about missing tokens
just after the previous token (rather than at the location of the next
token).

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

15 years agoAdd Type::hasPointerRepresentation predicate.
Daniel Dunbar [Thu, 26 Feb 2009 20:52:22 +0000 (20:52 +0000)]
Add Type::hasPointerRepresentation predicate.
 - For types whose native representation is a pointer.

 - Use to replace ExprConstant.cpp:HasPointerEvalType,
   CodeGenFunction::isObjCPointerType.

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

15 years agoUse Loc::IsLocType() instead of isPointerType() and isReferenceType().
Ted Kremenek [Thu, 26 Feb 2009 20:29:19 +0000 (20:29 +0000)]
Use Loc::IsLocType() instead of isPointerType() and isReferenceType().

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

15 years agoRemove PointerLikeType.
Daniel Dunbar [Thu, 26 Feb 2009 19:54:52 +0000 (19:54 +0000)]
Remove PointerLikeType.
 - Having pointers and references share a base was not a useful
   notion.

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

15 years agoChange PointersToResolve to list the pointee type to resolve, not the
Daniel Dunbar [Thu, 26 Feb 2009 19:48:14 +0000 (19:48 +0000)]
Change PointersToResolve to list the pointee type to resolve, not the
pointer type.
 - Drops use of PointerLikeType.
 - No intended functionality change.

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

15 years agoDrop uses of getAsPointerLikeType.
Daniel Dunbar [Thu, 26 Feb 2009 19:13:44 +0000 (19:13 +0000)]
Drop uses of getAsPointerLikeType.
 - No functionality change.

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

15 years agoFix <rdar://problem/6574319> clang issues error on 'readonly' property with a defaul...
Steve Naroff [Thu, 26 Feb 2009 19:11:32 +0000 (19:11 +0000)]
Fix <rdar://problem/6574319> clang issues error on 'readonly' property with a defaul setter attribute.

Needed to make isPropertyReadonly() non-const (for this fix to compile). I imagine there's a way to retain the const-ness, however I have more important fish to fry.

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

15 years agoDrop uses of isPointerLikeType.
Daniel Dunbar [Thu, 26 Feb 2009 19:03:24 +0000 (19:03 +0000)]
Drop uses of isPointerLikeType.
 - No functionality change.

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

15 years agoAdd end of line at end.
Mike Stump [Thu, 26 Feb 2009 19:00:14 +0000 (19:00 +0000)]
Add end of line at end.

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

15 years agothis got moved to top level
Chris Lattner [Thu, 26 Feb 2009 18:38:21 +0000 (18:38 +0000)]
this got moved to top level

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

15 years agoFix an inconsistance in objc2's meta-data related to
Fariborz Jahanian [Thu, 26 Feb 2009 18:23:47 +0000 (18:23 +0000)]
Fix an inconsistance in objc2's meta-data related to
the symbol for the root meta-data.

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

15 years agoFix <rdar://problem/6614945> method not found.
Steve Naroff [Thu, 26 Feb 2009 18:16:19 +0000 (18:16 +0000)]
Fix <rdar://problem/6614945> method not found.

This was a fairly recent regression.

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

15 years agomove this makefile goop up to the top level llvm makefile.
Chris Lattner [Thu, 26 Feb 2009 17:48:04 +0000 (17:48 +0000)]
move this makefile goop up to the top level llvm makefile.

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

15 years agoAdd test for enum types
Anders Carlsson [Thu, 26 Feb 2009 17:38:19 +0000 (17:38 +0000)]
Add test for enum types

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

15 years agoFor scan-build based analyses, use the '-analyzer-eargely-assume' setting by default...
Ted Kremenek [Thu, 26 Feb 2009 17:36:31 +0000 (17:36 +0000)]
For scan-build based analyses, use the '-analyzer-eargely-assume' setting by default (turning it on to test how it impacts users).

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

15 years agoSet tab width to 2 on a number of CG related files
Anders Carlsson [Thu, 26 Feb 2009 17:34:58 +0000 (17:34 +0000)]
Set tab width to 2 on a number of CG related files

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

15 years agoClassify enum types correctly
Anders Carlsson [Thu, 26 Feb 2009 17:31:15 +0000 (17:31 +0000)]
Classify enum types correctly

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

15 years agoFix http://llvm.org/bugs/show_bug.cgi?id=3544.
Steve Naroff [Thu, 26 Feb 2009 15:55:06 +0000 (15:55 +0000)]
Fix http://llvm.org/bugs/show_bug.cgi?id=3544.

The code for looking up local/private method in Sema::ActOnInstanceMessage() was not handling categories properly. Sema::ActOnClassMessage() didn't have this bug.
Created a helper with the correct logic and changed both methods to use it.

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

15 years agoMake more AST nodes and semantic checkers dependent-expression-aware.
Sebastian Redl [Thu, 26 Feb 2009 14:39:58 +0000 (14:39 +0000)]
Make more AST nodes and semantic checkers dependent-expression-aware.

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

15 years agoFix ObjCInterfaceDecl::lookupInstanceMethod()/lookupClassMethod() to search in inheri...
Steve Naroff [Thu, 26 Feb 2009 11:32:02 +0000 (11:32 +0000)]
Fix ObjCInterfaceDecl::lookupInstanceMethod()/lookupClassMethod() to search in inherited protocols.

Also changed ObjCInterfaceDecl::lookupClassMethod() to look through a categories protocols.

Test/patch submitted by Jean-Daniel Dupas (thanks!).

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

15 years agoRemove short-circuit evaluation and the extension warnings. I'm
Eli Friedman [Thu, 26 Feb 2009 10:19:36 +0000 (10:19 +0000)]
Remove short-circuit evaluation and the extension warnings.  I'm
pretty sure we want to keep constant expression verification outside of
Evaluate. Because of that, the short-circuit evaluation doesn't
generally make sense, and the comma warning doesn't make sense in its
current form.

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

15 years agoRewrite of isIntegerConstantExpr to be centered around Evaluate. This
Eli Friedman [Thu, 26 Feb 2009 09:29:13 +0000 (09:29 +0000)]
Rewrite of isIntegerConstantExpr to be centered around Evaluate.  This
is a rather big change, but I think this is the direction we want to go;
the code is significantly shorter now, and it doesn't duplicate Evaluate
code.  There shouldn't be any visible changes as far as I know.

There has been some movement towards putting ICE handling into
Evaluate (for example, VerifyIntegerConstantExpression uses Evaluate
instead of isICE).  This patch is sort of the opposite of the approach,
making ICE handling work without Evaluate being aware of it. I think
this approach is better because it separates the code that does the
constant evaluation from code that's calculating a rather
arbitrary predicate.

The one thing I don't really like about this patch is that
the handling of commas in C99 complicates it signficantly. (Seriously,
what was the standards committee thinking when they wrote that
part?) I think I've come up with a decent approach, but it doesn't feel
ideal.  I might add some way to check for evaluated commas from Evaluate
in a subsequent patch; that said, it might not be worth bothering.

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

15 years agoEnable export maps also on {Free, Net}BSD.
Anton Korobeynikov [Thu, 26 Feb 2009 09:04:29 +0000 (09:04 +0000)]
Enable export maps also on {Free, Net}BSD.
Don't ask me, how does this makefile-horribleness even work ;)

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

15 years agoFixup spacing.
Mike Stump [Thu, 26 Feb 2009 08:00:25 +0000 (08:00 +0000)]
Fixup spacing.

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

15 years agox86_64 ABI: Qualified id types are passed as pointers.
Daniel Dunbar [Thu, 26 Feb 2009 07:21:35 +0000 (07:21 +0000)]
x86_64 ABI: Qualified id types are passed as pointers.
 - <rdar://problem/6622451> Bad x86_64 code gen for message call taking one argument.

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

15 years agoAdd an export map for clang on Linux.
Owen Anderson [Thu, 26 Feb 2009 06:29:54 +0000 (06:29 +0000)]
Add an export map for clang on Linux.

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

15 years agoZap the Sema constant initializer checking code that we aren't using
Eli Friedman [Thu, 26 Feb 2009 04:47:58 +0000 (04:47 +0000)]
Zap the Sema constant initializer checking code that we aren't using
anymore.  If we want to reuse bits and pieces to add strict checking for
constant initializers, we can dig them out of SVN history; the existing
code won't be useful as-is.

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

15 years agoFix for PR3663/3669: use TryToFixInvalidVariablyModifiedType for
Eli Friedman [Thu, 26 Feb 2009 03:58:54 +0000 (03:58 +0000)]
Fix for PR3663/3669: use TryToFixInvalidVariablyModifiedType for
variable declarations where applicable.  Also, a few fixes to
TryToFixInvalidVariablyModifiedType for issues that this exposed.

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

15 years agoUse RecordFirst/RecordLast range checks in DeclContext
Douglas Gregor [Thu, 26 Feb 2009 00:02:51 +0000 (00:02 +0000)]
Use RecordFirst/RecordLast range checks in DeclContext

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

15 years agoImplementing parsing of template-ids as class-names, so that we can
Douglas Gregor [Wed, 25 Feb 2009 23:52:28 +0000 (23:52 +0000)]
Implementing parsing of template-ids as class-names, so that we can
derive from a class template specialization, e.g.,

  class B : public A<int> { };

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

15 years agoCodeGen support for copied BlockDeclRefExprs.
Mike Stump [Wed, 25 Feb 2009 23:33:13 +0000 (23:33 +0000)]
CodeGen support for copied BlockDeclRefExprs.

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

15 years agoFix subtle bug in EvalEagerlyAssume: Check if the previous node was at the same state...
Ted Kremenek [Wed, 25 Feb 2009 23:32:10 +0000 (23:32 +0000)]
Fix subtle bug in EvalEagerlyAssume: Check if the previous node was at the same statement.

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