Skip to content
Snippets Groups Projects
Commit 29d8838c authored by Marek Polacek's avatar Marek Polacek
Browse files

c++: ICE with concept defined in function [PR97536]

This is an ICE-on-invalid, but I keep seeing it when reducing code so
I'd like to fix it.  We crash on

  template <typename> void forward() {
    concept C = true;
  }

which breaks two requirements:
[temp.concept]/1: A concept is a template ...
[temp.concept]/3: A concept-definition shall inhabit a namespace scope.

This patch adds a test that exercises broken code and fixes the ICE
by checking that a concept-definition is defined at namespace scope.

gcc/cp/ChangeLog:

	PR c++/97536
	* decl.c (grokvardecl): Given an error when a concept is not defined
	at namespace scope.

gcc/testsuite/ChangeLog:

	PR c++/97536
	* g++.dg/concepts/diagnostic16.C: New test.
parent 329d2f0d
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment