public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/67155] New: Linking of complex constexpr static class member failing across files
@ 2015-08-08  3:06 JamesMikeDuPont at googlemail dot com
  2015-08-08  3:08 ` [Bug c++/67155] " JamesMikeDuPont at googlemail dot com
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: JamesMikeDuPont at googlemail dot com @ 2015-08-08  3:06 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67155

            Bug ID: 67155
           Summary: Linking of complex constexpr static class member
                    failing across files
           Product: gcc
           Version: 5.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: JamesMikeDuPont at googlemail dot com
  Target Milestone: ---

Created attachment 36148
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36148&action=edit
test case

I encountered a strange behavior when creating a class that wraps a constexpr
string.

It seems that the static constant string field wrapped in a class is only
accessible in the same header file and not available in a separate compilation
unit. 

The workaround is to move the usage of the static fields into the header.

If you prefer git you can find the test case here as well :
https://github.com/h4ck3rm1k3/gcc-plugin-cpp-template/tree/constexpr/testcase


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/67155] Linking of complex constexpr static class member failing across files
  2015-08-08  3:06 [Bug c++/67155] New: Linking of complex constexpr static class member failing across files JamesMikeDuPont at googlemail dot com
@ 2015-08-08  3:08 ` JamesMikeDuPont at googlemail dot com
  2015-08-08  4:00 ` JamesMikeDuPont at googlemail dot com
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: JamesMikeDuPont at googlemail dot com @ 2015-08-08  3:08 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67155

--- Comment #1 from James Michael DuPont <JamesMikeDuPont at googlemail dot com> ---
The compiler output :

g++ -std=gnu++11 test.cpp test.hpp
/tmp/cceBFmJM.o: In function `S::S()':
test.cpp:(.text+0x35): undefined reference to `S::u'
collect2: error: ld returned 1 exit status
Makefile:2: recipe for target 'test' failed
make: *** [test] Error 1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/67155] Linking of complex constexpr static class member failing across files
  2015-08-08  3:06 [Bug c++/67155] New: Linking of complex constexpr static class member failing across files JamesMikeDuPont at googlemail dot com
  2015-08-08  3:08 ` [Bug c++/67155] " JamesMikeDuPont at googlemail dot com
@ 2015-08-08  4:00 ` JamesMikeDuPont at googlemail dot com
  2015-08-08  4:10 ` JamesMikeDuPont at googlemail dot com
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: JamesMikeDuPont at googlemail dot com @ 2015-08-08  4:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67155

--- Comment #2 from James Michael DuPont <JamesMikeDuPont at googlemail dot com> ---
adding this seems to solve the linker error:

constexpr CU S::u;


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/67155] Linking of complex constexpr static class member failing across files
  2015-08-08  3:06 [Bug c++/67155] New: Linking of complex constexpr static class member failing across files JamesMikeDuPont at googlemail dot com
  2015-08-08  3:08 ` [Bug c++/67155] " JamesMikeDuPont at googlemail dot com
  2015-08-08  4:00 ` JamesMikeDuPont at googlemail dot com
@ 2015-08-08  4:10 ` JamesMikeDuPont at googlemail dot com
  2015-08-08  6:07 ` trippels at gcc dot gnu.org
  2015-08-08  8:06 ` redi at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: JamesMikeDuPont at googlemail dot com @ 2015-08-08  4:10 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67155

James Michael DuPont <JamesMikeDuPont at googlemail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from James Michael DuPont <JamesMikeDuPont at googlemail dot com> ---
got feedback on so
http://stackoverflow.com/questions/31889247/c-static-constexpr-class-member-with-complex-class-linking-issues/31889510#31889510


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/67155] Linking of complex constexpr static class member failing across files
  2015-08-08  3:06 [Bug c++/67155] New: Linking of complex constexpr static class member failing across files JamesMikeDuPont at googlemail dot com
                   ` (2 preceding siblings ...)
  2015-08-08  4:10 ` JamesMikeDuPont at googlemail dot com
@ 2015-08-08  6:07 ` trippels at gcc dot gnu.org
  2015-08-08  8:06 ` redi at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: trippels at gcc dot gnu.org @ 2015-08-08  6:07 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67155

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |trippels at gcc dot gnu.org
         Resolution|FIXED                       |INVALID


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/67155] Linking of complex constexpr static class member failing across files
  2015-08-08  3:06 [Bug c++/67155] New: Linking of complex constexpr static class member failing across files JamesMikeDuPont at googlemail dot com
                   ` (3 preceding siblings ...)
  2015-08-08  6:07 ` trippels at gcc dot gnu.org
@ 2015-08-08  8:06 ` redi at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: redi at gcc dot gnu.org @ 2015-08-08  8:06 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67155

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
https://gcc.gnu.org/wiki/VerboseDiagnostics#missing_static_const_definition


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-08-08  8:06 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-08  3:06 [Bug c++/67155] New: Linking of complex constexpr static class member failing across files JamesMikeDuPont at googlemail dot com
2015-08-08  3:08 ` [Bug c++/67155] " JamesMikeDuPont at googlemail dot com
2015-08-08  4:00 ` JamesMikeDuPont at googlemail dot com
2015-08-08  4:10 ` JamesMikeDuPont at googlemail dot com
2015-08-08  6:07 ` trippels at gcc dot gnu.org
2015-08-08  8:06 ` redi at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).