October 26, 2017
https://issues.dlang.org/show_bug.cgi?id=17541

github-bugzilla@puremagic.com changed:

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

--
October 26, 2017
https://issues.dlang.org/show_bug.cgi?id=17541

johanengelen@weka.io changed:

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

--- Comment #7 from johanengelen@weka.io ---
reopening, because it is not fixed for safe/trusted, nor for impure/pure, throw/nothrow.

--
December 18, 2017
https://issues.dlang.org/show_bug.cgi?id=17541

--- Comment #8 from github-bugzilla@puremagic.com ---
Commits pushed to stable at https://github.com/dlang/dmd

https://github.com/dlang/dmd/commit/df847ccb60a37f4dbc349e8cee4a2ee6081e0c3c fix Issue 17541 - Function attribute deduction depends on compile invocation

https://github.com/dlang/dmd/commit/aabeeb0a550a0d4ba066209290c799c5cf812e87 Merge pull request #6995 from WalterBright/fix17541

--
December 18, 2017
https://issues.dlang.org/show_bug.cgi?id=17541

github-bugzilla@puremagic.com changed:

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

--
December 18, 2017
https://issues.dlang.org/show_bug.cgi?id=17541

johanengelen@weka.io changed:

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

--- Comment #9 from johanengelen@weka.io ---
reopening, because it is not fixed for safe/trusted, nor for impure/pure, throw/nothrow.

--
March 23, 2020
https://issues.dlang.org/show_bug.cgi?id=17541

--- Comment #10 from Dlang Bot <dlang-bot@dlang.rocks> ---
@WalterBright created dlang/dmd pull request #10959 "add pure and @safe to correct for issue 17541" mentioning this issue:

- add pure and @safe to correct for issue 17541

https://github.com/dlang/dmd/pull/10959

--
March 24, 2020
https://issues.dlang.org/show_bug.cgi?id=17541

--- Comment #11 from Walter Bright <bugzilla@digitalmars.com> ---
I cannot reproduce the problem. The previous fix I pushed was wrong.

The pragma(msg, insertabcdefg.mangleof) gives the wrong name mangling, as it happens before the inference is complete. The compiler should give an error for that.

--
March 24, 2020
https://issues.dlang.org/show_bug.cgi?id=17541

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://issues.dlang.org/sh
                   |                            |ow_bug.cgi?id=20696

--
March 24, 2020
https://issues.dlang.org/show_bug.cgi?id=17541

--- Comment #12 from johanengelen@weka.io ---
(In reply to Walter Bright from comment #11)
> I cannot reproduce the problem. The previous fix I pushed was wrong.
> 
> The pragma(msg, insertabcdefg.mangleof) gives the wrong name mangling, as it happens before the inference is complete. The compiler should give an error for that.

The pragma(msg, insertabcdefg.mangleof) is not the only bug here. The larger
pain point is that deduction depends on compiler invocation and hence breaks
separate compilation (either for linking symbol resolution, or for code
depending on a certain attribute deduction result).
Tested with dlang 2.090.1 just now, replacing `@nogc` with `pure`, and
following reproduction commands shows the problem:

❯ ~/dlang/dmd20901/osx/bin/dmd one.d -c -of=tmp1.o


                          ❯ nm tmp1.o| grep "insertabc"
00000000000002ac S __D5three__T2TTTiZQg13insertabcdefgMFNaiZv
0000000000000078 S __D5three__T2TTTiZQg13insertabcdefgMFNaiZv.eh

❯ dmd one.d two.d three.d -c -of=tmp2.o

❯ nm tmp2.o | grep "insertabc"
00000000000003b4 S __D5three__T2TTTiZQg13insertabcdefgMFiZv
00000000000000c0 S __D5three__T2TTTiZQg13insertabcdefgMFiZv.eh

The symbol names in the binary are different.

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=17541

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P3

--