[cfe-commits] cfe-commits Digest, Vol 58, Issue 248
Carter, Jack
jcarter at mips.com
Wed Apr 25 15:00:41 PDT 2012
% readelf -V list*
Version symbols section '.gnu.version' contains 27 entries:
Addr: 00000000004007ce Offset: 0x0007ce Link: 6 (.dynsym)
000: 0 (*local*) 1 (*global*) 1 (*global*) 1 (*global*)
004: 0 (*local*) 4 (GLIBC_2.0) 1 (*global*) 1 (*global*)
008: 1 (*global*) 2 (GLIBCXX_3.4) 9 (GCC_3.0) 7 (GLIBCXX_3.4.9)
00c: 6 (GLIBC_2.2) 2 (GLIBCXX_3.4) 5 (GLIBCXX_3.4.14) 2 (GLIBCXX_3.4)
010: 5 (GLIBCXX_3.4.14) 2 (GLIBCXX_3.4) 5 (GLIBCXX_3.4.14) 4 (GLIBC_2.0)
014: 2 (GLIBCXX_3.4) 2 (GLIBCXX_3.4) 3 (GLIBCXX_3.4.11) 2 (GLIBCXX_3.4)
018: 0 (*local*) 2 (GLIBCXX_3.4) 8 (CXXABI_1.3)
Version needs section '.gnu.version_r' contains 3 entries:
Addr: 0x0000000000400804 Offset: 0x000804 Link: 7 (.dynstr)
000000: Version: 1 File: libgcc_s.so.1 Cnt: 1
0x0010: Name: GCC_3.0 Flags: none Version: 9
0x0020: Version: 1 File: libc.so.6 Cnt: 2
0x0030: Name: GLIBC_2.2 Flags: none Version: 6
0x0040: Name: GLIBC_2.0 Flags: none Version: 4
0x0050: Version: 1 File: libstdc++.so.6 Cnt: 5
0x0060: Name: CXXABI_1.3 Flags: none Version: 8
0x0070: Name: GLIBCXX_3.4.9 Flags: none Version: 7
0x0080: Name: GLIBCXX_3.4.14 Flags: none Version: 5
0x0090: Name: GLIBCXX_3.4.11 Flags: none Version: 3
0x00a0: Name: GLIBCXX_3.4 Flags: none Version: 2
________________________________________
From: cfe-commits-bounces at cs.uiuc.edu [cfe-commits-bounces at cs.uiuc.edu] on behalf of cfe-commits-request at cs.uiuc.edu [cfe-commits-request at cs.uiuc.edu]
Sent: Wednesday, April 25, 2012 2:57 PM
To: cfe-commits at cs.uiuc.edu
Subject: cfe-commits Digest, Vol 58, Issue 248
Send cfe-commits mailing list submissions to
cfe-commits at cs.uiuc.edu
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
or, via email, send a message with subject or body 'help' to
cfe-commits-request at cs.uiuc.edu
You can reach the person managing the list at
cfe-commits-owner at cs.uiuc.edu
When replying, please edit your Subject line so it is more specific
than "Re: Contents of cfe-commits digest..."
Today's Topics:
1. Re: [PATCH] Implicit fall-through between switch labels
(Alexander Kornienko)
2. Re: [patch] include_next <float.h> on windows for _msc_ver
too, not just for __mingw32__ (Jordan Rose)
3. Re: [patch] include_next <float.h> on windows for _msc_ver
too, not just for __mingw32__ (Nico Weber)
4. Re: r155585 - in /cfe/trunk/test/Rewriter:
rewrite-byref-in-nested-blocks.mm rewrite-modern-block-consts.mm
rewrite-modern-captured-nested-bvar.mm
rewrite-modern-extern-c-func-decl.mm
rewrite-rewritten-initializer.mm (Eric Christopher)
5. RecursiveASTVisitor: visit all implicit template
specializations with the primary template (Richard Smith)
----------------------------------------------------------------------
Message: 1
Date: Wed, 25 Apr 2012 23:08:49 +0200
From: Alexander Kornienko <alexfh at google.com>
Subject: Re: [cfe-commits] [PATCH] Implicit fall-through between
switch labels
To: cfe-commits at cs.uiuc.edu
Message-ID:
<CAOweq9LNjmF7kOw-tbFmrDEN1K44Hs6dG_+Jkao6fnhD1Xj7+Q at mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"
Hi,
On Wed, Apr 25, 2012 at 6:12 PM, Alexander Kornienko <alexfh at google.com>wrote:
> The new version of patch addresses most of the issues discussed here +
> refactored code ;)
>
More specifically, changes in this version of patch:
* diagnostic message reworded; each warning is accompanied by exactly one
note with a fix-it hint, for simplicity and consistency the location to
insert fall-through annotation is always immediately before the relevant
case label:
test.cpp:16:5: warning: unannotated fall-through between switch labels
[-Wimplicit-fallthrough]
case 13:
^
test.cpp:16:5: note: insert [[fallthrough]]; to silence this warning
[-Wimplicit-fallthrough]
case 13:
^
[[fallthrough]];
* added specific diagnostic message for unreachable fall-through
annotation, e.g. this code:
switch(x) {
case 1:
break;
[[fallthrough]];
case 2:
...
will produce a similar warning:
test.cpp:12:7: warning: fallthrough annotation in unreachable code
[-Wimplicit-fallthrough]
[[fallthrough]];
^
There are also a couple of ideas from Jordy Rose, which I would like to
implement, but didn't have time yet.
--
Best regards,
Alexander Kornienko
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.cs.uiuc.edu/pipermail/cfe-commits/attachments/20120425/1ae0e7fc/attachment-0001.html
------------------------------
Message: 2
Date: Wed, 25 Apr 2012 17:14:50 -0400
From: Jordan Rose <jediknil at belkadan.com>
Subject: Re: [cfe-commits] [patch] include_next <float.h> on windows
for _msc_ver too, not just for __mingw32__
To: Matthieu Monrocq <matthieu.monrocq at gmail.com>
Cc: "cfe-commits at cs.uiuc.edu Commits" <cfe-commits at cs.uiuc.edu>
Message-ID: <FAFF6231-EE50-4356-B9BC-D517354D65D0 at belkadan.com>
Content-Type: text/plain; charset=iso-8859-1
On Apr 25, 2012, at 14:32, Matthieu Monrocq wrote:
> I know of two mechanism in lit:
>
> - REQUIRES (such as REQUIRES: shell)
> - XFAIL (such as XFAIL: mingw, win32)
>
> I do not know if REQUIRES could be used with platforms (as XFAIL) and blacklisting does not seem very interesting...
>
> Is there a set of builtin such as __has_include that would detect whether an include_next exist ?
>
> -- Matthieu
I believe there is, in fact, a __has_include_next. You can see the usage in has_include.c.
Jordy
------------------------------
Message: 3
Date: Wed, 25 Apr 2012 14:38:24 -0700
From: Nico Weber <thakis at chromium.org>
Subject: Re: [cfe-commits] [patch] include_next <float.h> on windows
for _msc_ver too, not just for __mingw32__
To: Jordan Rose <jediknil at belkadan.com>
Cc: "cfe-commits at cs.uiuc.edu Commits" <cfe-commits at cs.uiuc.edu>
Message-ID:
<CAMGbLiHi1VQ=X0g+Zp=CZU4qNgAM_hHS1BBaUX-j4tavecm5Yw at mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
On Wed, Apr 25, 2012 at 2:14 PM, Jordan Rose <jediknil at belkadan.com> wrote:
>
> On Apr 25, 2012, at 14:32, Matthieu Monrocq wrote:
>> I know of two mechanism in lit:
>>
>> - REQUIRES (such as REQUIRES: shell)
>> - XFAIL (such as XFAIL: mingw, win32)
>>
>> I do not know if REQUIRES could be used with platforms (as XFAIL) and blacklisting does not seem very interesting...
>>
>> Is there a set of builtin such as __has_include that would detect whether an include_next exist ?
>>
>> -- Matthieu
>
> I believe there is, in fact, a __has_include_next. You can see the usage in has_include.c.
Is a test that only tests something interesting on a small subset of
developer machines useful though?
>
> Jordy
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
------------------------------
Message: 4
Date: Wed, 25 Apr 2012 14:55:43 -0700
From: Eric Christopher <echristo at apple.com>
Subject: Re: [cfe-commits] r155585 - in /cfe/trunk/test/Rewriter:
rewrite-byref-in-nested-blocks.mm rewrite-modern-block-consts.mm
rewrite-modern-captured-nested-bvar.mm
rewrite-modern-extern-c-func-decl.mm rewrite-rewritten-initializer.mm
To: Fariborz Jahanian <fjahanian at apple.com>
Cc: cfe-commits at cs.uiuc.edu
Message-ID: <4327F9EB-1EB9-4368-B195-D7F3B17E2F3C at apple.com>
Content-Type: text/plain; CHARSET=US-ASCII
This looks like it's failing on the bots. I'll send the url in private. Can you take a look please?
Thanks!
-eric
On Apr 25, 2012, at 1:48 PM, Fariborz Jahanian <fjahanian at apple.com> wrote:
> Author: fjahanian
> Date: Wed Apr 25 15:48:00 2012
> New Revision: 155585
>
> URL: http://llvm.org/viewvc/llvm-project?rev=155585&view=rev
> Log:
> objective-c modern translator: more tests.
>
>
> Added:
> cfe/trunk/test/Rewriter/rewrite-modern-block-consts.mm
> cfe/trunk/test/Rewriter/rewrite-modern-captured-nested-bvar.mm
> Modified:
> cfe/trunk/test/Rewriter/rewrite-byref-in-nested-blocks.mm
> cfe/trunk/test/Rewriter/rewrite-modern-extern-c-func-decl.mm
> cfe/trunk/test/Rewriter/rewrite-rewritten-initializer.mm
>
> Modified: cfe/trunk/test/Rewriter/rewrite-byref-in-nested-blocks.mm
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/rewrite-byref-in-nested-blocks.mm?rev=155585&r1=155584&r2=155585&view=diff
> ==============================================================================
> --- cfe/trunk/test/Rewriter/rewrite-byref-in-nested-blocks.mm (original)
> +++ cfe/trunk/test/Rewriter/rewrite-byref-in-nested-blocks.mm Wed Apr 25 15:48:00 2012
> @@ -1,7 +1,7 @@
> // RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc -fobjc-fragile-abi %s -o %t-rw.cpp
> // RUN: %clang_cc1 -fsyntax-only -fblocks -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
> // RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-modern-rw.cpp
> -// RUN: %clang_cc1 -fsyntax-only -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-modern-rw.cpp
> +// RUN: %clang_cc1 -fsyntax-only -Werror -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-modern-rw.cpp
> // radar 7692350
>
> void f(void (^block)(void));
>
> Added: cfe/trunk/test/Rewriter/rewrite-modern-block-consts.mm
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/rewrite-modern-block-consts.mm?rev=155585&view=auto
> ==============================================================================
> --- cfe/trunk/test/Rewriter/rewrite-modern-block-consts.mm (added)
> +++ cfe/trunk/test/Rewriter/rewrite-modern-block-consts.mm Wed Apr 25 15:48:00 2012
> @@ -0,0 +1,19 @@
> +// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-modern-rw.cpp
> +// RUN: %clang_cc1 -fsyntax-only -Werror -Wno-address-of-temporary -D"__declspec(X)=" %t-modern-rw.cpp
> +// rdar:// 8243071
> +
> +void x(int y) {}
> +void f() {
> + const int bar = 3;
> + int baz = 4;
> + __block int bab = 4;
> + __block const int bas = 5;
> + void (^b)() = ^{
> + x(bar);
> + x(baz);
> + x(bab);
> + x(bas);
> + b();
> + };
> + b();
> +}
>
> Added: cfe/trunk/test/Rewriter/rewrite-modern-captured-nested-bvar.mm
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/rewrite-modern-captured-nested-bvar.mm?rev=155585&view=auto
> ==============================================================================
> --- cfe/trunk/test/Rewriter/rewrite-modern-captured-nested-bvar.mm (added)
> +++ cfe/trunk/test/Rewriter/rewrite-modern-captured-nested-bvar.mm Wed Apr 25 15:48:00 2012
> @@ -0,0 +1,35 @@
> +// RUN: %clang_cc1 -E %s -o %t.mm
> +// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o - | FileCheck %s
> +// rdar://9006279
> +
> +void q(void (^p)(void)) {
> + p();
> +}
> +
> +void f() {
> + __block char BYREF_VAR_CHECK = 'a';
> + __block char d = 'd';
> + q(^{
> + q(^{
> + __block char e = 'e';
> + char l = 'l';
> + BYREF_VAR_CHECK = 'b';
> + d = 'd';
> + q(^{
> + e = '1';
> + BYREF_VAR_CHECK = '2';
> + d = '3';
> + }
> + );
> + });
> + });
> +}
> +
> +int main() {
> + f();
> + return 0;
> +}
> +
> +// CHECK 2: (__Block_byref_BYREF_VAR_CHECK_0 *)BYREF_VAR_CHECK
> +// CHECK: {(void*)0,(__Block_byref_BYREF_VAR_CHECK_0 *)&BYREF_VAR_CHECK, 0, sizeof(__Block_byref_BYREF_VAR_CHECK_0), 'a'}
> +// CHECK: __Block_byref_BYREF_VAR_CHECK_0 *)&BYREF_VAR_CHECK, (__Block_byref_d_1 *)&d, 570425344));
>
> Modified: cfe/trunk/test/Rewriter/rewrite-modern-extern-c-func-decl.mm
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/rewrite-modern-extern-c-func-decl.mm?rev=155585&r1=155584&r2=155585&view=diff
> ==============================================================================
> --- cfe/trunk/test/Rewriter/rewrite-modern-extern-c-func-decl.mm (original)
> +++ cfe/trunk/test/Rewriter/rewrite-modern-extern-c-func-decl.mm Wed Apr 25 15:48:00 2012
> @@ -70,3 +70,27 @@
>
> // rdar://11314329
> static inline const void *auto_zone_base_pointer(void *zone, const void *ptr) { return 0; }
> +
> + at interface I
> +{
> + id list;
> +}
> +- (void) Meth;
> +// radar 7589385 use before definition
> +- (void) allObjects;
> + at end
> +
> + at implementation I
> +// radar 7589385 use before definition
> +- (void) allObjects {
> + __attribute__((__blocks__(byref))) id *listp;
> +
> + void (^B)(void) = ^(void) {
> + *listp++ = 0;
> + };
> +
> + B();
> +}
> +- (void) Meth { __attribute__((__blocks__(byref))) void ** listp = (void **)list; }
> + at end
> +
>
> Modified: cfe/trunk/test/Rewriter/rewrite-rewritten-initializer.mm
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/rewrite-rewritten-initializer.mm?rev=155585&r1=155584&r2=155585&view=diff
> ==============================================================================
> --- cfe/trunk/test/Rewriter/rewrite-rewritten-initializer.mm (original)
> +++ cfe/trunk/test/Rewriter/rewrite-rewritten-initializer.mm Wed Apr 25 15:48:00 2012
> @@ -1,5 +1,7 @@
> // RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc -fobjc-fragile-abi %s -o %t-rw.cpp
> // RUN: %clang_cc1 -fsyntax-only -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
> +// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw-modern.cpp
> +// RUN: %clang_cc1 -fsyntax-only -Werror -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-rw-modern.cpp
> // radar 7669784
>
> typedef void * id;
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
------------------------------
Message: 5
Date: Wed, 25 Apr 2012 14:57:45 -0700
From: Richard Smith <richard at metafoo.co.uk>
Subject: [cfe-commits] RecursiveASTVisitor: visit all implicit
template specializations with the primary template
To: cfe-commits <cfe-commits at cs.uiuc.edu>
Message-ID:
<CAOfiQqn-CJNORgO=MZMAbuC+FONve0J3BjpwSNOq03dgT4MyKg at mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"
Hi,
Our current strategy is that RecursiveASTVisitor attempts to visit template
specializations as part of visiting the template from which the
specializations are instantiated. This goes wrong for a partial
specialization of a member template of a class template:
template<typename T> struct A {
template<typename U> struct B;
};
template<typename T> template<typename U> struct A<T>::B<U*> {};
Here, it's not trivial to find the specializations which are instantiated
from the partial specialization, and the RecursiveASTVisitor fails to find
them.
A somewhat-related problem is that we do not visit template specializations
where we have instantiated the declaration but not the definition. In such
cases, we do not know (and, from the RecursiveASTVisitor, cannot reasonably
compute) which primary template or partial specialization an instantiated
declaration should be associated with, so the existing strategy cannot be
applied there.
I propose that we fix both of these issues by visiting all implicit
instantiations of a template (including cases where we have not
instantiated a definition) when we visit the primary template; a patch
implementing this is attached.
This conflicts with the chosen direction from when this functionality was
added [1], so I'd like to hear any concerns with this direction.
Thanks!
Richard
[1]
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20100830/033977.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.cs.uiuc.edu/pipermail/cfe-commits/attachments/20120425/2fd9616c/attachment.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: visit-all-specializations.diff
Type: application/octet-stream
Size: 9920 bytes
Desc: not available
Url : http://lists.cs.uiuc.edu/pipermail/cfe-commits/attachments/20120425/2fd9616c/attachment.obj
------------------------------
_______________________________________________
cfe-commits mailing list
cfe-commits at cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
End of cfe-commits Digest, Vol 58, Issue 248
********************************************
More information about the cfe-commits
mailing list