Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SList::Init: add missing constructor #33096

Merged
merged 1 commit into from
Mar 3, 2020
Merged

SList::Init: add missing constructor #33096

merged 1 commit into from
Mar 3, 2020

Conversation

tmds
Copy link
Member

@tmds tmds commented Mar 3, 2020

SList::Init uses an assignment operator that doesn't exist.
Because this template class method doesn't get used during
default compilation, most compilers don't detect the issue.
clang 10 detects the issue and gives an error.

Fixes #32875

cc @omajid @janvorli

SList::Init uses an assignment operator that doesn't exist.
Because this template class method doesn't get used during
default compilation, most compilers don't detect the issue.
clang 10 detects the issue and gives an error.
Copy link
Member

@jkotas jkotas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks

@jkotas jkotas merged commit 200de97 into dotnet:master Mar 3, 2020
omajid added a commit to omajid/dotnet-coreclr that referenced this pull request Mar 11, 2020
This fixes 3 different set of build issues are seen when compiling with
clang 10.

- Clang 10 fails to compile slist.h because the code contained is
  actually invalid. The assignment operator being used doesn't exist.

  This is a backport of dotnet/runtime#33096

- Clang 10 has moved exception-handling mismatches in function
  declarations under the -fms-compatibility flag (instead of the
  -fms-extensions flag). Our declarations of atoll and other similar
  functions are missing the exception declaration `throw()`. This
  mismatch in exception declarations makes clang 10 unable to build this
  code. Fix it by defining THROW_DECL as `throw()` which is supported at
  least as far back as clang 3.3.

  This is a backport of dotnet/runtime#32837

- Clang 10 has enabled (or made default?) the `misleading-indentation`
  warning which causes errors when trying to compile code in
  src/tools/metainfo/mdinfo.cpp.

  This is a backport of dotnet/runtime#33406
omajid added a commit to omajid/dotnet-coreclr that referenced this pull request Mar 16, 2020
This fixes 3 different set of build issues are seen when compiling with
clang 10.

- Clang 10 fails to compile slist.h because the code contained is
  actually invalid. The assignment operator being used doesn't exist.

  This is a backport of dotnet/runtime#33096

- Clang 10 has moved exception-handling mismatches in function
  declarations under the -fms-compatibility flag (instead of the
  -fms-extensions flag). Our declarations of atoll and other similar
  functions are missing the exception declaration `throw()`. This
  mismatch in exception declarations makes clang 10 unable to build this
  code. Fix it by defining THROW_DECL as `throw()` which is supported at
  least as far back as clang 3.3.

  This is a backport of dotnet/runtime#32837

- Clang 10 has enabled additional warnings. Lets turn of -Werror
  globally in this release branch by making the `-ignorewarnings` switch
  to `./build.sh` be the default.
omajid added a commit to omajid/dotnet-coreclr that referenced this pull request Mar 16, 2020
This fixes 3 different sets of build issues seen when compiling with
Clang 10.

- Clang 10 fails to compile slist.h because the code contained is
  actually invalid. The assignment operator being used doesn't exist.

  This is a backport of dotnet/runtime#33096

- Clang 10 has moved exception-handling mismatches in function
  declarations under the -fms-compatibility flag (instead of the
  -fms-extensions flag). Our declarations of atoll and other similar
  functions are missing the exception declaration `throw()`. This
  mismatch in exception declarations makes clang 10 unable to build this
  code. Fix it by defining THROW_DECL as `throw()` which is supported at
  least as far back as clang 3.3.

  This is a backport of dotnet/runtime#32837

- Clang 10 has enabled additional warnings. Lets turn of -Werror
  globally in this release branch by making the `-ignorewarnings` switch
  to `./build.sh` be the default.
omajid added a commit to omajid/dotnet-runtime that referenced this pull request Mar 19, 2020
Clang 10 enable new warnings, some of which is affecting the
src/libraries code.

Clang 10 has added `-Walloca` to warn about uses of `alloca`. This
commit replaces the only non-compliant use of that with a single fixed
stack-allocated buffer.

Clang 10 has also added `-Wimplicit-int-float-conversion`. This commit
uses explicit casts to double to avoid the warnings.

Fixes dotnet#33681

Also contains a small fix for slist.h that was somehow missed in dotnet#33096.

After this commit, I can build all of runtime with Clang 10.
jkotas pushed a commit that referenced this pull request Mar 20, 2020
Clang 10 enable new warnings, some of which is affecting the
src/libraries code.

Clang 10 has added `-Walloca` to warn about uses of `alloca`. This
commit replaces the only non-compliant use of that with a single fixed
stack-allocated buffer.

Clang 10 has also added `-Wimplicit-int-float-conversion`. This commit
uses explicit casts to double to avoid the warnings.

Fixes #33681

Also contains a small fix for slist.h that was somehow missed in #33096.

After this commit, I can build all of runtime with Clang 10.
Anipik pushed a commit to dotnet/coreclr that referenced this pull request Mar 25, 2020
This fixes 3 different sets of build issues seen when compiling with
Clang 10.

- Clang 10 fails to compile slist.h because the code contained is
  actually invalid. The assignment operator being used doesn't exist.

  This is a backport of dotnet/runtime#33096

- Clang 10 has moved exception-handling mismatches in function
  declarations under the -fms-compatibility flag (instead of the
  -fms-extensions flag). Our declarations of atoll and other similar
  functions are missing the exception declaration `throw()`. This
  mismatch in exception declarations makes clang 10 unable to build this
  code. Fix it by defining THROW_DECL as `throw()` which is supported at
  least as far back as clang 3.3.

  This is a backport of dotnet/runtime#32837

- Clang 10 has enabled additional warnings. Lets turn of -Werror
  globally in this release branch by making the `-ignorewarnings` switch
  to `./build.sh` be the default.
omajid added a commit to omajid/dotnet-coreclr that referenced this pull request Jun 2, 2020
This contains a grab bag of fixes to fix the build with clang 10.

- dotnet#23075

  Fix missing includes in coreclr/src/debug/createdump/

- dotnet/runtime#33096

  SList::Init: add missing constructor

- A subset of dotnet#22129

  Just the parts that introduce the THROW_DECL macro in pal.h

- dotnet/runtime#32837

  This fixes THROW_DECL introduce in the previous PR to work with clang, which
  is required in clang 10.

- One new change:

  In a significant divergance, this commits adds more THROW_DECL macros
  to all the math functions to address a ton of errors pointed out when
  building SOS:

    In file included from /home/omajid/devel/dotnet/coreclr/src/ToolBox/SOS/Strike/strike.cpp:116:
    In file included from /home/omajid/devel/dotnet/coreclr/src/vm/hillclimbing.h:19:
    In file included from /home/omajid/devel/dotnet/coreclr/src/inc/complex.h:16:
    In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/math.h:36:
    In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/cmath:45:
    In file included from /usr/include/math.h:290:
    /usr/include/bits/mathcalls.h:53:13: error: exception specification in declaration does not match previous declaration
    __MATHCALL (acos,, (_Mdouble_ __x));
                ^
    /home/omajid/devel/dotnet/coreclr/src/pal/inc/pal.h:4395:26: note: previous declaration is here
    PALIMPORT double __cdecl acos(double);
                             ^

  Then, to make sure the declarations and implementations match, it adds
  THROW_DECL to the definitions in src/pal/src/cruntime/math.cpp
omajid added a commit to omajid/dotnet-coreclr that referenced this pull request Jun 2, 2020
This contains a grab bag of fixes to fix the build with clang 10.

- dotnet#23075

  Fix missing includes in coreclr/src/debug/createdump/

- dotnet/runtime#33096

  SList::Init: add missing constructor

- A subset of dotnet#22129

  Just the parts that introduce the THROW_DECL macro in pal.h

- dotnet/runtime#32837

  This fixes THROW_DECL introduce in the previous PR to work with clang, which
  is required in clang 10.

- One new change:

  In a significant divergance, this commits adds more THROW_DECL macros
  to all the math functions to address a ton of errors pointed out when
  building SOS:

    In file included from /home/omajid/devel/dotnet/coreclr/src/ToolBox/SOS/Strike/strike.cpp:116:
    In file included from /home/omajid/devel/dotnet/coreclr/src/vm/hillclimbing.h:19:
    In file included from /home/omajid/devel/dotnet/coreclr/src/inc/complex.h:16:
    In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/math.h:36:
    In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/cmath:45:
    In file included from /usr/include/math.h:290:
    /usr/include/bits/mathcalls.h:53:13: error: exception specification in declaration does not match previous declaration
    __MATHCALL (acos,, (_Mdouble_ __x));
                ^
    /home/omajid/devel/dotnet/coreclr/src/pal/inc/pal.h:4395:26: note: previous declaration is here
    PALIMPORT double __cdecl acos(double);
                             ^

  Then, to make sure the declarations and implementations match, it adds
  THROW_DECL to the definitions in src/pal/src/cruntime/math.cpp

Co-authored-by: Mike McLaughlin <mikem@microsoft.com>
Co-authored-by: Sinan Kaya <sinan.kaya@microsoft.com>
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
Anipik pushed a commit to dotnet/coreclr that referenced this pull request Jun 11, 2020
This contains a grab bag of fixes to fix the build with clang 10.

- #23075

  Fix missing includes in coreclr/src/debug/createdump/

- dotnet/runtime#33096

  SList::Init: add missing constructor

- A subset of #22129

  Just the parts that introduce the THROW_DECL macro in pal.h

- dotnet/runtime#32837

  This fixes THROW_DECL introduce in the previous PR to work with clang, which
  is required in clang 10.

- One new change:

  In a significant divergance, this commits adds more THROW_DECL macros
  to all the math functions to address a ton of errors pointed out when
  building SOS:

    In file included from /home/omajid/devel/dotnet/coreclr/src/ToolBox/SOS/Strike/strike.cpp:116:
    In file included from /home/omajid/devel/dotnet/coreclr/src/vm/hillclimbing.h:19:
    In file included from /home/omajid/devel/dotnet/coreclr/src/inc/complex.h:16:
    In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/math.h:36:
    In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/cmath:45:
    In file included from /usr/include/math.h:290:
    /usr/include/bits/mathcalls.h:53:13: error: exception specification in declaration does not match previous declaration
    __MATHCALL (acos,, (_Mdouble_ __x));
                ^
    /home/omajid/devel/dotnet/coreclr/src/pal/inc/pal.h:4395:26: note: previous declaration is here
    PALIMPORT double __cdecl acos(double);
                             ^

  Then, to make sure the declarations and implementations match, it adds
  THROW_DECL to the definitions in src/pal/src/cruntime/math.cpp

Co-authored-by: Mike McLaughlin <mikem@microsoft.com>
Co-authored-by: Sinan Kaya <sinan.kaya@microsoft.com>
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>

Co-authored-by: Mike McLaughlin <mikem@microsoft.com>
Co-authored-by: Sinan Kaya <sinan.kaya@microsoft.com>
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
@ghost ghost locked as resolved and limited conversation to collaborators Dec 10, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Error building ./src/coreclr/src/inc/slist.h with clang 10
3 participants