]> granicus.if.org Git - clang/log
clang
15 years agoRemove FIXME comment.
Ted Kremenek [Mon, 24 Nov 2008 19:27:06 +0000 (19:27 +0000)]
Remove FIXME comment.

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

15 years agoAdd support for AllocaRegion extent with GDM.
Zhongxing Xu [Mon, 24 Nov 2008 09:44:56 +0000 (09:44 +0000)]
Add support for AllocaRegion extent with GDM.

One design problem that is emerging is the signed-ness problem during static
analysis. Many unsigned value have to be converted into signed value because
it partipates in operations with signed values.

On the other hand, we cannot blindly make all values occuring in static analysis
signed, because we do have cases where unsignedness is required, for example,
integer overflow detection.

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

15 years agoAdd utility methods.
Zhongxing Xu [Mon, 24 Nov 2008 09:38:21 +0000 (09:38 +0000)]
Add utility methods.

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

15 years agoFix 80-col violation.
Zhongxing Xu [Mon, 24 Nov 2008 07:38:01 +0000 (07:38 +0000)]
Fix 80-col violation.

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

15 years agoCleanup code with utility method.
Zhongxing Xu [Mon, 24 Nov 2008 07:02:06 +0000 (07:02 +0000)]
Cleanup code with utility method.

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

15 years agoChange a whole lot of diagnostics to take QualType's directly
Chris Lattner [Mon, 24 Nov 2008 06:25:27 +0000 (06:25 +0000)]
Change a whole lot of diagnostics to take QualType's directly
instead of converting them to strings first.  This also fixes a
bunch of minor inconsistencies in the diagnostics emitted by clang
and adds a bunch of FIXME's to DiagnosticKinds.def.

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

15 years agoRename NamedDecl::getName() to getNameAsString(). Replace a bunch of
Chris Lattner [Mon, 24 Nov 2008 05:29:24 +0000 (05:29 +0000)]
Rename NamedDecl::getName() to getNameAsString().  Replace a bunch of
uses of getName() with uses of getDeclName().  This upgrades a bunch of
diags to take DeclNames instead of std::strings.

This also tweaks a couple of diagnostics to be cleaner and changes
CheckInitializerTypes/PerformInitializationByConstructor to pass
around DeclarationNames instead of std::strings.

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

15 years agoReimplement Expr::isConstantExpr in terms of Expr::Evaluate. This fixes PR2832.
Anders Carlsson [Mon, 24 Nov 2008 05:23:59 +0000 (05:23 +0000)]
Reimplement Expr::isConstantExpr in terms of Expr::Evaluate. This fixes PR2832.

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

15 years ago__builtin_constant_p takes an argument that can have any type.
Anders Carlsson [Mon, 24 Nov 2008 05:23:12 +0000 (05:23 +0000)]
__builtin_constant_p takes an argument that can have any type.

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

15 years agoStrings are NULL terminated. So the region size should plus one.
Zhongxing Xu [Mon, 24 Nov 2008 05:16:01 +0000 (05:16 +0000)]
Strings are NULL terminated. So the region size should plus one.

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

15 years agoForgot the newline :)
Anders Carlsson [Mon, 24 Nov 2008 05:13:45 +0000 (05:13 +0000)]
Forgot the newline :)

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

15 years agoAdd test case for bug that's been fixed.
Anders Carlsson [Mon, 24 Nov 2008 05:11:21 +0000 (05:11 +0000)]
Add test case for bug that's been fixed.

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

15 years agoThe address of a variable is only constant if the variable has global storage.
Anders Carlsson [Mon, 24 Nov 2008 04:41:22 +0000 (04:41 +0000)]
The address of a variable is only constant if the variable has global storage.

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

15 years agoFix bug in the constant evaluator. Fixes PR3115.
Anders Carlsson [Mon, 24 Nov 2008 04:21:33 +0000 (04:21 +0000)]
Fix bug in the constant evaluator. Fixes PR3115.

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

15 years agoMigrate some stuff from NamedDecl::getName() to
Chris Lattner [Mon, 24 Nov 2008 04:00:27 +0000 (04:00 +0000)]
Migrate some stuff from NamedDecl::getName() to
NamedDecl::getNameAsString() to make it more explicit.

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

15 years agoRename NamedDecl::getIdentifierName() to ::getNameAsCString() and make it
Chris Lattner [Mon, 24 Nov 2008 03:54:41 +0000 (03:54 +0000)]
Rename NamedDecl::getIdentifierName() to ::getNameAsCString() and make it
assert if the name is not an identifier.  Update callers to do the right
thing and avoid this method in unsafe cases.  This also fixes an objc
warning that was missing a space, and migrates a couple more to taking
IdentifierInfo and QualTypes instead of std::strings.

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

15 years agosimplify this code.
Chris Lattner [Mon, 24 Nov 2008 03:52:59 +0000 (03:52 +0000)]
simplify this code.

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

15 years agoRename Selector::getName() to Selector::getAsString(), and add
Chris Lattner [Mon, 24 Nov 2008 03:33:13 +0000 (03:33 +0000)]
Rename Selector::getName() to Selector::getAsString(), and add
a new NamedDecl::getAsString() method.

Change uses of Selector::getName() to just pass in a Selector
where possible (e.g. to diagnostics) instead of going through
an std::string.

This also adds new formatters for objcinstance and objcclass
as described in the dox.

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

15 years agoAdd a comment about the signedness.
Zhongxing Xu [Mon, 24 Nov 2008 02:30:48 +0000 (02:30 +0000)]
Add a comment about the signedness.

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

15 years agoAdd test case for out-of-bound memory access checking.
Zhongxing Xu [Mon, 24 Nov 2008 02:19:49 +0000 (02:19 +0000)]
Add test case for out-of-bound memory access checking.

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

15 years agoAdd getSize() support for StringRegion.
Zhongxing Xu [Mon, 24 Nov 2008 02:18:56 +0000 (02:18 +0000)]
Add getSize() support for StringRegion.

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

15 years agoRewrite FindDiagnostics to be more strict about the formatting of the
Chris Lattner [Mon, 24 Nov 2008 01:28:17 +0000 (01:28 +0000)]
Rewrite FindDiagnostics to be more strict about the formatting of the
expected-foo strings.  Now the only allowed characters between
expected-error and {{  is whitespace.

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

15 years agoclean up -verify mode output. If the expected-error string is
Chris Lattner [Sun, 23 Nov 2008 23:38:26 +0000 (23:38 +0000)]
clean up -verify mode output.  If the expected-error string is
mangled, report it using the diagnostics machinery instead of printf.

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

15 years agoconvert some more warnings to NOTEs.
Chris Lattner [Sun, 23 Nov 2008 23:26:13 +0000 (23:26 +0000)]
convert some more warnings to NOTEs.

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

15 years agoremove warn_previous_declaration
Chris Lattner [Sun, 23 Nov 2008 23:20:13 +0000 (23:20 +0000)]
remove warn_previous_declaration

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

15 years agomake the 'to match this' diagnostic a note.
Chris Lattner [Sun, 23 Nov 2008 23:17:07 +0000 (23:17 +0000)]
make the 'to match this' diagnostic a note.

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

15 years agoMake all the 'redefinition' diagnostics more consistent, and make the
Chris Lattner [Sun, 23 Nov 2008 23:12:31 +0000 (23:12 +0000)]
Make all the 'redefinition' diagnostics more consistent, and make the
"previously defined here" diagnostics all notes.

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

15 years agomake some objc redefinition warnings more consistent: call definitions
Chris Lattner [Sun, 23 Nov 2008 22:46:27 +0000 (22:46 +0000)]
make some objc redefinition warnings more consistent: call definitions
"definitions", not declarations.  Point out the location of the
original definition.

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

15 years agoTweak duplicate category diagnostic to work like the duplicate protocol diagnostic.
Chris Lattner [Sun, 23 Nov 2008 22:38:38 +0000 (22:38 +0000)]
Tweak duplicate category diagnostic to work like the duplicate protocol diagnostic.
Also, point out where the previous decl was.  This unxfails two tests.

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

15 years agoConvert IdentifierInfo's to be printed the same as DeclarationNames
Chris Lattner [Sun, 23 Nov 2008 21:45:46 +0000 (21:45 +0000)]
Convert IdentifierInfo's to be printed the same as DeclarationNames
with implicit quotes around them.  This has a bunch of follow-on
effects and requires tweaking to a whole lot of code.  This causes
a regression in two tests (xfailed) by causing it to emit things like:

  Line 10: duplicate interface declaration for category 'MyClass1' ('Category1')

instead of:

  Line 10: duplicate interface declaration for category 'MyClass1(Category1)'

I will fix this in a follow-up commit.

As part of this, I had to start switching stuff to use ->getDeclName() instead
of Decl::getName() for consistency.  This is good, but I was planning to do this
as an independent patch.  There will be several follow-on patches
to clean up some of the mess, but this patch is already too big.

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

15 years agoadd support for inserting a DeclarationName into a diagnostic directly
Chris Lattner [Sun, 23 Nov 2008 20:28:15 +0000 (20:28 +0000)]
add support for inserting a DeclarationName into a diagnostic directly
without calling getAsString().  This implicitly puts quotes around the
name, so diagnostics need to be tweaked to accommodate this.

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

15 years agoinserting a qualtype adds quotes implicitly
Chris Lattner [Sun, 23 Nov 2008 20:27:13 +0000 (20:27 +0000)]
inserting a qualtype adds quotes implicitly

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

15 years agoGenericize the qualtype formating callback to support any diag argument.
Chris Lattner [Sun, 23 Nov 2008 09:21:17 +0000 (09:21 +0000)]
Genericize the qualtype formating callback to support any diag argument.
No functionality change.

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

15 years agoAdd support for sending QualType's directly into diags and convert two
Chris Lattner [Sun, 23 Nov 2008 09:13:29 +0000 (09:13 +0000)]
Add support for sending QualType's directly into diags and convert two
diags over to use this.  QualTypes implicitly print single quotes around
them for uniformity and future extension.

Doing this requires a little function pointer dance to prevent libbasic
from depending on libast.

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

15 years agoother minor edits.
Chris Lattner [Sun, 23 Nov 2008 08:32:53 +0000 (08:32 +0000)]
other minor edits.

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

15 years agominor cleanups.
Chris Lattner [Sun, 23 Nov 2008 08:16:56 +0000 (08:16 +0000)]
minor cleanups.

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

15 years agoAdd out-of-bound memory access warning report code.
Zhongxing Xu [Sun, 23 Nov 2008 05:52:28 +0000 (05:52 +0000)]
Add out-of-bound memory access warning report code.

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

15 years agoImprove test case.
Zhongxing Xu [Sun, 23 Nov 2008 05:50:21 +0000 (05:50 +0000)]
Improve test case.

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

15 years agoClean up code by using utility methods.
Zhongxing Xu [Sun, 23 Nov 2008 04:30:35 +0000 (04:30 +0000)]
Clean up code by using utility methods.

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

15 years agofinish up the diagnostics documentation. We don't
Chris Lattner [Sun, 23 Nov 2008 00:42:53 +0000 (00:42 +0000)]
finish up the diagnostics documentation.  We don't
support QualType and DeclarationName yet, so some of it
is lies, however, this will be fixed shortly.

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

15 years agomore updates
Chris Lattner [Sun, 23 Nov 2008 00:28:33 +0000 (00:28 +0000)]
more updates

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

15 years agofinish documentation of %select.
Chris Lattner [Sat, 22 Nov 2008 23:50:47 +0000 (23:50 +0000)]
finish documentation of %select.

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

15 years agoReturn false if we encounter a type we can't handle.
Anders Carlsson [Sat, 22 Nov 2008 22:56:32 +0000 (22:56 +0000)]
Return false if we encounter a type we can't handle.

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

15 years agoFix test cases broken by quote normalization in diagnostics.
Sebastian Redl [Sat, 22 Nov 2008 22:39:41 +0000 (22:39 +0000)]
Fix test cases broken by quote normalization in diagnostics.

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

15 years agoAn expression is not foldable if it can't be fully evaluated. Fixes PR3060
Anders Carlsson [Sat, 22 Nov 2008 22:32:07 +0000 (22:32 +0000)]
An expression is not foldable if it can't be fully evaluated. Fixes PR3060

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

15 years agoImplemented ir-gen for 'implicit' properties using the new AST nodes.
Fariborz Jahanian [Sat, 22 Nov 2008 22:30:21 +0000 (22:30 +0000)]
Implemented ir-gen for 'implicit' properties using the new AST nodes.

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

15 years agoDocumentation for the plural modifier.
Sebastian Redl [Sat, 22 Nov 2008 22:16:45 +0000 (22:16 +0000)]
Documentation for the plural modifier.

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

15 years agoCase values must be evaluated
Anders Carlsson [Sat, 22 Nov 2008 21:50:49 +0000 (21:50 +0000)]
Case values must be evaluated

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

15 years agostart documenting Diagnostics. Sebastian, I'd appreciate it
Chris Lattner [Sat, 22 Nov 2008 21:41:31 +0000 (21:41 +0000)]
start documenting Diagnostics.  Sebastian, I'd appreciate it
if you can fill in the section for %plural.

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

15 years agoconsistently use single quotes for quoted things.
Chris Lattner [Sat, 22 Nov 2008 21:16:43 +0000 (21:16 +0000)]
consistently use single quotes for quoted things.

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

15 years agoUse Expr::Evaluate for case statements. Fixes PR2525
Anders Carlsson [Sat, 22 Nov 2008 21:04:56 +0000 (21:04 +0000)]
Use Expr::Evaluate for case statements. Fixes PR2525

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

15 years agoFix indentation width.
Anders Carlsson [Sat, 22 Nov 2008 20:49:42 +0000 (20:49 +0000)]
Fix indentation width.

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

15 years agoremove a dead enum
Chris Lattner [Sat, 22 Nov 2008 20:47:38 +0000 (20:47 +0000)]
remove a dead enum

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

15 years agoSupport for implicit property assignment. Error assigning to
Fariborz Jahanian [Sat, 22 Nov 2008 20:25:50 +0000 (20:25 +0000)]
Support for implicit property assignment. Error assigning to
'implicit' property with no 'setter'.

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

15 years agoadd a silly testcase
Chris Lattner [Sat, 22 Nov 2008 19:57:03 +0000 (19:57 +0000)]
add a silly testcase

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

15 years agoAnd a test case for my last patch.
Fariborz Jahanian [Sat, 22 Nov 2008 18:40:47 +0000 (18:40 +0000)]
And a test case for my last patch.

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

15 years agoNew AST node to access "implicit" setter/getter using property dor syntax.
Fariborz Jahanian [Sat, 22 Nov 2008 18:39:36 +0000 (18:39 +0000)]
New AST node to access "implicit" setter/getter using property dor syntax.
Issuing diagnostics when assigning to read-only properties.
This is work in progress.

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

15 years agoImplement a %plural modifier for complex plural forms in diagnostics. Use it in the...
Sebastian Redl [Sat, 22 Nov 2008 13:44:36 +0000 (13:44 +0000)]
Implement a %plural modifier for complex plural forms in diagnostics. Use it in the overload diagnostics.

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

15 years agoRemove debug code.
Zhongxing Xu [Sat, 22 Nov 2008 13:23:00 +0000 (13:23 +0000)]
Remove debug code.

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

15 years agoInitial support for checking out of bound memory access. Only support
Zhongxing Xu [Sat, 22 Nov 2008 13:21:46 +0000 (13:21 +0000)]
Initial support for checking out of bound memory access. Only support
ConcreteInt index for now.

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

15 years agoremove some more old Diag methods, replace with a single static helper function
Chris Lattner [Sat, 22 Nov 2008 08:32:36 +0000 (08:32 +0000)]
remove some more old Diag methods, replace with a single static helper function

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

15 years agomove the Diag method for Sema to be inline. This shrinks the release-asserts
Chris Lattner [Sat, 22 Nov 2008 08:28:49 +0000 (08:28 +0000)]
move the Diag method for Sema to be inline.  This shrinks the release-asserts
clang executable (when built with gcc 4.2 on the mac) from 14519740 to
14495028 bytes.  This shrinks individual object files as well: SemaChecking
from 23580->22248, SemaDeclObjc from 61368->57376, SemaExpr from
115628->110516, as well as several others.

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

15 years agoalphabeticalize.
Chris Lattner [Sat, 22 Nov 2008 08:22:53 +0000 (08:22 +0000)]
alphabeticalize.

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

15 years agoFix a weird inconsistency with hex floats. Previously the lexer
Chris Lattner [Sat, 22 Nov 2008 07:39:03 +0000 (07:39 +0000)]
Fix a weird inconsistency with hex floats.  Previously the lexer
would not eat the "-1" in "0x0p-1", but LiteralSupport would accept
it when extensions are on.  This caused strangeness and failures
when hexfloats were properly treated as an extension (not error)
in LiteralSupport.

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

15 years agoremove the NumericLiteralParser::Diag helper method, inlining it into
Chris Lattner [Sat, 22 Nov 2008 07:23:31 +0000 (07:23 +0000)]
remove the NumericLiteralParser::Diag helper method, inlining it into
its call sites.  This makes it more explicit when the hasError flag is
getting set and removes a confusing difference in behavior between
PP.Diag and Diag in this code.

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

15 years agoMove the Preprocessor::Diag methods inline. This has the interesting
Chris Lattner [Sat, 22 Nov 2008 07:03:46 +0000 (07:03 +0000)]
Move the Preprocessor::Diag methods inline.  This has the interesting
(and carefully calculated) effect of allowing the compiler to reason
about the aliasing properties of DiagnosticBuilder object better,
allowing the whole thing to be promoted to registers instead of
resulting in a ton of stack traffic.

While I'm not very concerned about the performance of the Diag() method
invocations, I *am* more concerned about their code size and impact on the
non-diagnostic code.  This patch shrinks the clang executable (in
release-asserts mode with gcc-4.2) from 14523980 to 14519816 bytes.  This
isn't much, but it shrinks the lexer from 38192 to 37776, PPDirectives.o
from 31116 to 28868 bytes, etc.

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

15 years agoAdd test for PR2992.
Anders Carlsson [Sat, 22 Nov 2008 06:42:54 +0000 (06:42 +0000)]
Add test for PR2992.

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

15 years agoinline a method into its only two call sites.
Chris Lattner [Sat, 22 Nov 2008 06:42:31 +0000 (06:42 +0000)]
inline a method into its only two call sites.

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

15 years agoactually, this version isn't really needed.
Chris Lattner [Sat, 22 Nov 2008 06:22:39 +0000 (06:22 +0000)]
actually, this version isn't really needed.

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

15 years agoremove a sneaky version of Diag hiding in PreprocessorLexer.
Chris Lattner [Sat, 22 Nov 2008 06:20:42 +0000 (06:20 +0000)]
remove a sneaky version of Diag hiding in PreprocessorLexer.

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

15 years agoUse tryEvaluate for constant exprs.
Anders Carlsson [Sat, 22 Nov 2008 02:34:39 +0000 (02:34 +0000)]
Use tryEvaluate for constant exprs.

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

15 years agoChange the Lexer::Diag method to not magically silence warnings,
Chris Lattner [Sat, 22 Nov 2008 02:02:22 +0000 (02:02 +0000)]
Change the Lexer::Diag method to not magically silence warnings,
force the caller to check instead.  This eliminates the need (and the
risk!) of weird null DiagnosticBuilder's floating around.

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

15 years agoTeach tentative parsing to handle block pointers (rdar://6394309)
Chris Lattner [Sat, 22 Nov 2008 01:15:33 +0000 (01:15 +0000)]
Teach tentative parsing to handle block pointers (rdar://6394309)

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

15 years agofit in 80 cols
Chris Lattner [Sat, 22 Nov 2008 01:04:49 +0000 (01:04 +0000)]
fit in 80 cols

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

15 years agoreverting this because it breaks some blocks cases, I'll send doug a testcase
Ted Kremenek [Sat, 22 Nov 2008 01:04:48 +0000 (01:04 +0000)]
reverting this because it breaks some blocks cases, I'll send doug a testcase

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

15 years agoSplit the DiagnosticInfo class into two disjoint classes:
Chris Lattner [Sat, 22 Nov 2008 00:59:29 +0000 (00:59 +0000)]
Split the DiagnosticInfo class into two disjoint classes:
one for building up the diagnostic that is in flight (DiagnosticBuilder)
and one for pulling structured information out of the diagnostic when
formatting and presenting it.

There is no functionality change with this patch.

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

15 years agoFix predicate: we're not in caching mode if CurPPLexer == 0, not CurLexer == 0.
Ted Kremenek [Sat, 22 Nov 2008 00:41:34 +0000 (00:41 +0000)]
Fix predicate: we're not in caching mode if CurPPLexer == 0, not CurLexer == 0.

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

15 years agoIn PTHLexer::DiscardToEndOfLine() use Lex() instead of AdvanceToken(). This handles...
Ted Kremenek [Fri, 21 Nov 2008 23:28:56 +0000 (23:28 +0000)]
In PTHLexer::DiscardToEndOfLine() use Lex() instead of AdvanceToken().  This handles transitions in the preprocessor state.

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

15 years agoReenable the default lexer.
Ted Kremenek [Fri, 21 Nov 2008 20:51:59 +0000 (20:51 +0000)]
Reenable the default lexer.

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

15 years agoWhen creating the raw tokens for PTHLexer, make sure the token representing the file...
Ted Kremenek [Fri, 21 Nov 2008 20:51:15 +0000 (20:51 +0000)]
When creating the raw tokens for PTHLexer, make sure the token representing the file to include is checked for being an identifier.

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

15 years agoWhen creating raw tokens for the PTHLexer specially handle angled strings for #includ...
Ted Kremenek [Fri, 21 Nov 2008 19:41:29 +0000 (19:41 +0000)]
When creating raw tokens for the PTHLexer specially handle angled strings for #include directives.

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

15 years agoFixed bugzilla bug# 3095 related to code gen. for @synchronized.
Fariborz Jahanian [Fri, 21 Nov 2008 19:21:53 +0000 (19:21 +0000)]
Fixed bugzilla bug# 3095 related to code gen. for @synchronized.

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

15 years agoImplementation of new and delete parsing and sema.
Sebastian Redl [Fri, 21 Nov 2008 19:14:01 +0000 (19:14 +0000)]
Implementation of new and delete parsing and sema.
This version uses VLAs to represent arrays. I'll try an alternative way next, but I want this safe first.

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

15 years agorearrange some fields.
Chris Lattner [Fri, 21 Nov 2008 18:59:21 +0000 (18:59 +0000)]
rearrange some fields.

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

15 years agomerge some simple call diagnostics.
Chris Lattner [Fri, 21 Nov 2008 18:44:24 +0000 (18:44 +0000)]
merge some simple call diagnostics.

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

15 years agoprint a type in a diagnostic.
Chris Lattner [Fri, 21 Nov 2008 18:27:34 +0000 (18:27 +0000)]
print a type in a diagnostic.

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

15 years agoFields of ivars of struct types are considered ivars
Fariborz Jahanian [Fri, 21 Nov 2008 18:14:01 +0000 (18:14 +0000)]
Fields of ivars of struct types are considered ivars
themselves for gc API generation purposes.

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

15 years agoDon't turn off blocks in C++
Douglas Gregor [Fri, 21 Nov 2008 17:10:06 +0000 (17:10 +0000)]
Don't turn off blocks in C++

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

15 years agoreapply the (corrected) patch to use the new llvm intrinsics for memcpy/memmove etc.
Chris Lattner [Fri, 21 Nov 2008 16:43:15 +0000 (16:43 +0000)]
reapply the (corrected) patch to use the new llvm intrinsics for memcpy/memmove etc.

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

15 years agoAllow redeclaration of typedefs in C++
Douglas Gregor [Fri, 21 Nov 2008 16:29:06 +0000 (16:29 +0000)]
Allow redeclaration of typedefs in C++

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

15 years agotemporarily revert Sangiv's patch.
Chris Lattner [Fri, 21 Nov 2008 16:26:37 +0000 (16:26 +0000)]
temporarily revert Sangiv's patch.

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

15 years agoTiny fix to the parsing of linkage-specifications
Douglas Gregor [Fri, 21 Nov 2008 16:10:08 +0000 (16:10 +0000)]
Tiny fix to the parsing of linkage-specifications

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

15 years agoFix overloading of non-static member functions that differ in their cv-qualifiers
Douglas Gregor [Fri, 21 Nov 2008 15:36:28 +0000 (15:36 +0000)]
Fix overloading of non-static member functions that differ in their cv-qualifiers

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

15 years agoEnable some more operator overloading tests, and don't look into an identifier for...
Douglas Gregor [Fri, 21 Nov 2008 15:30:19 +0000 (15:30 +0000)]
Enable some more operator overloading tests, and don't look into an identifier for functions that might not have one

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

15 years agomem[cpy,set,move] intrinsics are now overloaded.
Sanjiv Gupta [Fri, 21 Nov 2008 07:57:42 +0000 (07:57 +0000)]
mem[cpy,set,move] intrinsics are now overloaded.

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

15 years agomerge 3 more diagnostics into 1.
Chris Lattner [Fri, 21 Nov 2008 07:57:12 +0000 (07:57 +0000)]
merge 3 more diagnostics into 1.

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

15 years agoAdd the concept of "modifiers" to the clang diagnostic format
Chris Lattner [Fri, 21 Nov 2008 07:50:02 +0000 (07:50 +0000)]
Add the concept of "modifiers" to the clang diagnostic format
strings.  This allows us to have considerable flexibility in how
these things are displayed and provides extra information that
allows us to merge away diagnostics that are very similar.

Diagnostic modifiers are a string of characters with the regex
[-a-z]+ that occur between the % and digit.  They may
optionally have an argument that can parameterize them.

For now, I've added two example modifiers.  One is a very useful
tool that allows you to factor commonality across diagnostics
that need single words or phrases combined.  Basically you can
use %select{a|b|c}4 with with an integer argument that selects
either a/b/c based on an integer value in the range [0..3).

The second modifier is also an integer modifier, aimed to help
English diagnostics handle plurality.  "%s3" prints to 's' if
integer argument #3 is not 1, otherwise it prints to nothing.
I'm fully aware that 's' is an English concept and doesn't
apply to all situations (mouse vs mice).  However, this is very
useful and we can add other crazy modifiers once we add support
for polish! ;-)

I converted a couple C++ diagnostics over to use this as an
example, I'd appreciate it if others could merge the other
likely candiates.  If you have other modifiers that you want,
lets talk on cfe-dev.

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

15 years agoChange CheckIncrementDecrementOperand to test for common cases first
Chris Lattner [Fri, 21 Nov 2008 07:05:48 +0000 (07:05 +0000)]
Change CheckIncrementDecrementOperand to test for common cases first
and fall through better.

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

15 years agomove the diagnostic location and ID out of DiagnosticInfo and store it in
Chris Lattner [Fri, 21 Nov 2008 06:59:12 +0000 (06:59 +0000)]
move the diagnostic location and ID out of DiagnosticInfo and store it in
the Diagnostic class. Since we can already only have one diagnostic in
flight at a time, this shrinks DiagnosticInfo.

This reduces DiagnosticInfo to being basically a rather crazy smart pointer
to a DiagnosticInfo :)

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

15 years agomove diagnostic insertion methods to be free methods instead of
Chris Lattner [Fri, 21 Nov 2008 06:54:20 +0000 (06:54 +0000)]
move diagnostic insertion methods to be free methods instead of
in the DiagnosticInfo class.  This requires marking them as taking
a const DiagnosticInfo, which is bogus (they logically mutate DI),
but works with the C++ type system.

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