Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions source/basic.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3769,7 +3769,7 @@
using the alignment specifier\iref{dcl.align}.
Attempting to create an object\iref{intro.object} in storage that
does not meet the alignment requirements of the object's type
is undefined behavior.\ubdef{basic.align.object.alignment}
is undefined behavior\ubdef{basic.align.object.alignment}.

\pnum
A \defnadj{fundamental}{alignment} is represented by an alignment
Expand Down Expand Up @@ -4514,7 +4514,7 @@
\tcode{p0} represents the address of a block of storage disjoint from the storage
for any other object accessible to the caller.
The effect of indirecting through a pointer
returned from a request for zero size is undefined.\ubdef{basic.stc.alloc.zero.dereference}
returned from a request for zero size is undefined\ubdef{basic.stc.alloc.zero.dereference}.
\begin{footnote}
The intent is
to have \tcode{\keyword{operator} \keyword{new}()} implementable by
Expand Down Expand Up @@ -4637,7 +4637,7 @@
signature.

\pnum
If a deallocation function terminates by throwing an exception, the behavior is undefined.\ubdef{basic.stc.alloc.dealloc.throw}
If a deallocation function terminates by throwing an exception, the behavior is undefined\ubdef{basic.stc.alloc.dealloc.throw}.
The value of the first argument supplied to a deallocation function may
be a null pointer value; if so, and if the deallocation function is one
supplied in the standard library, the call has no effect.
Expand Down
4 changes: 2 additions & 2 deletions source/declarations.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3274,7 +3274,7 @@
the converted initializer is a glvalue whose
type is not call-compatible\iref{expr.call}
with the type of the function's definition
results in undefined behavior.\ubdef{dcl.ref.incompatible.function}
results in undefined behavior\ubdef{dcl.ref.incompatible.function}.
Attempting to bind a reference to an object where
the converted initializer is a glvalue through which
the object is not type-accessible\iref{basic.lval}
Expand All @@ -3292,7 +3292,7 @@
\end{note}
The behavior of an evaluation of a reference\iref{expr.prim.id, expr.ref} that
does not happen after\iref{intro.races} the initialization of the reference
is undefined.\ubdef{dcl.ref.uninitialized.reference}
is undefined\ubdef{dcl.ref.uninitialized.reference}.
\begin{example}
\begin{codeblock}
int &f(int&);
Expand Down
18 changes: 9 additions & 9 deletions source/expressions.tex
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@
a defaulted copy/move constructor or copy/move assignment operator
for a union of type \tcode{U} with a glvalue argument
that does not denote an object of type \cv{}~\tcode{U} within its lifetime,
the behavior is undefined.\ubdef{expr.basic.lvalue.union.initialization}
the behavior is undefined\ubdef{expr.basic.lvalue.union.initialization}.
\begin{note}
In C, an entire object of structure type can be accessed, e.g., using assignment.
By contrast, \Cpp{} has no notion of accessing an object of class type
Expand All @@ -345,7 +345,7 @@
If a pointer to $X$ would be valid in
the context of the evaluation of the expression\iref{basic.fundamental},
the result designates $X$;
otherwise, the behavior is undefined.\ubdef{expr.type.reference.lifetime}
otherwise, the behavior is undefined\ubdef{expr.type.reference.lifetime}.
\begin{note}
Before the lifetime of the reference has started or after it has ended,
the behavior is undefined (see~\ref{basic.life}).
Expand Down Expand Up @@ -686,7 +686,7 @@

\item Otherwise, if the bits in the value representation of
the object to which the glvalue refers
are not valid for the object's type, the behavior is undefined.\ubdef{conv.lval.valid.representation}
are not valid for the object's type, the behavior is undefined\ubdef{conv.lval.valid.representation}.
\begin{example}
\begin{codeblock}
bool f() {
Expand Down Expand Up @@ -1024,8 +1024,8 @@
exactly as a value of the floating-point type.
\end{note}
If the value being converted is
outside the range of values that can be represented, the behavior is undefined.
\ubdef{conv.fpint.int.not.represented}
outside the range of values that can be represented,
the behavior is undefined\ubdef{conv.fpint.int.not.represented}.
If the
source type is \keyword{bool}, the value \keyword{false} is converted to zero and the value
\keyword{true} is converted to one.
Expand Down Expand Up @@ -1079,7 +1079,7 @@
that is
within its lifetime or
within its period of construction or destruction\iref{class.cdtor},
the behavior is undefined.\ubdef{conv.ptr.virtual.base}
the behavior is undefined\ubdef{conv.ptr.virtual.base}.
Otherwise,
the result is a pointer to the base class subobject of
the derived class object.
Expand Down Expand Up @@ -1113,7 +1113,7 @@
\tcode{D}, a program that necessitates this conversion is ill-formed.
If class \tcode{D} does not contain the original member and
is not a base class of the class containing the original member,
the behavior is undefined.\ubdef{conv.member.missing.member}
the behavior is undefined\ubdef{conv.member.missing.member}.
Otherwise,
the result of the conversion refers to the same member as the pointer to
member before the conversion took place, but it refers to the base class
Expand Down Expand Up @@ -4507,14 +4507,14 @@
that is
within its lifetime or
within its period of construction or destruction\iref{class.cdtor},
the behavior is undefined.\ubdef{expr.dynamic.cast.pointer.lifetime}
the behavior is undefined\ubdef{expr.dynamic.cast.pointer.lifetime}.
If \tcode{v} is a glvalue of type \tcode{U} and
\tcode{v} does not refer to an object
whose type is similar to \tcode{U} and
that is
within its lifetime or
within its period of construction or destruction,
the behavior is undefined.\ubdef{expr.dynamic.cast.glvalue.lifetime}
the behavior is undefined\ubdef{expr.dynamic.cast.glvalue.lifetime}.

\pnum
If \tcode{T} is ``pointer to \cv{} \keyword{void}'', then the result
Expand Down
6 changes: 6 additions & 0 deletions source/ifndr.tex
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,12 @@

\pnum
\ifndrxref{dcl.attr.noreturn.trans.unit.mismatch}
No diagnostic is requried if a function is declared
in one translation unit with the \tcode{noreturn} attribute
but has declarations in other translation units
without the attribute.

\pnum
\begin{example}
\begin{codeblocktu}{Translation unit \#1}
[[noreturn]] void f() {}
Expand Down
Loading